我想在我写的gem中使用bundler。我有Gemfile,在my_gem_file.rb中我有
require 'rubygems'
require 'bundler'
Bundler.setup
Bundler.require(:default)
但是当我构建并安装我的gem时,我得到异常Bundler :: GemfileNotFound:找不到Gemfile。在gem中使用bundler有什么解决方案吗?
答案 0 :(得分:3)
由于您的gem已在其.gemspec中指定了其依赖项,因此您可以假设它们将在运行时可用。不要涉及Bundler。
但是,您仍然可以使用Bundler来开发gem。如果你使用这个Gemfile:
source :rubygems
gemspec
Bundler将查看.gemspec以确定运行bundle install时要安装的gem。您可以在此处详细了解:http://jeffkreeftmeijer.com/2010/bundler-because-your-gems-depend-on-gems-too/
答案 1 :(得分:2)
Bundler不适合管理宝石源中的宝石。在gem中,只需要你需要的库。
答案 2 :(得分:2)
我不同意,Bundler非常适合宝石开发。它有助于简化入门和协作。并保持gemspec清洁?
我将消除开发依赖项
Gem::Specification.new do |s|
s.add_development_dependency("mocha", ["~>0.9.8"])
当然要保留你的宝石所依赖的s.add_dependency("i18n", ["~>0.4.1"])
和其他人。
你最终可能会得到一个Gemfile(如Theo所示),就像这个
一样source :rubygems
gemspec
group :test do
gem 'rails', '3.0.0'
gem 'mocha'
gem 'rspec-rails', "~>2.0.1"
end
漂亮干净,易于阅读。希望这会有所帮助。