2010-11-08 53 views
1

我想用我寫的寶石內的打包機。我的Gemfile和my_gem_file.rb我有在我的寶石裏面使用打包機

require 'rubygems' 
require 'bundler' 
Bundler.setup 
Bundler.require(:default) 

但是當我建立並安裝我的寶石,我得到異常捆紮機:: GemfileNotFound:找不到的Gemfile。是否有任何解決方案使用寶石內的打包機?

回答

2

Bundler不適合依靠寶石來源的寶石管理。在寶石內部,只需要你需要的庫。

3

由於您的gem在其.gemspec中指定了它的依賴關係,因此您可以假定它們將在運行時可用。不要牽涉Bundler。

但是,您仍然可以使用Bundler來開發您的寶石。如果你使用這個Gemfile:

source :rubygems 
gemspec 

Bundler會查看你的.gemspec來確定運行bundle install時要安裝哪些gem。你可以在這裏閱讀更多關於:http://jeffkreeftmeijer.com/2010/bundler-because-your-gems-depend-on-gems-too/

2

我不同意,Bundler是偉大的寶石發展。它有助於更​​輕鬆地開始和協作。並保持gemspec清潔?

我消除了開發依賴

Gem::Specification.new do |s| 
    s.add_development_dependency("mocha", ["~>0.9.8"]) 
當然

保持s.add_dependency("i18n", ["~>0.4.1"])和其他人,你的寶石依賴。

你可能最終得到一個Gemfile中(如西奧顯示),這樣

source :rubygems 
gemspec 

group :test do 
    gem 'rails', '3.0.0' 
    gem 'mocha' 
    gem 'rspec-rails', "~>2.0.1" 
end 

尼斯和清潔,易於閱讀。希望這可以幫助。