在我的gem里面使用捆绑器

我想在我写的gem中使用bundler。 我有Gemfile和my_gem_file.rb我有

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

但是当我构建并安装我的gem时,我得到exceptionBundler :: GemfileNotFound:找不到Gemfile。 在gem中使用捆绑器有什么解决方案吗?

由于您的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/

Bundler不适合管理gem源中的gem。 在gem中,只需要你需要的库。

我不同意,Bundler非常适合gem开发。 它有助于简化入门和协作。 并保持gemspec清洁?

我将消除dev依赖项

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

当然保留s.add_dependency("i18n", ["~>0.4.1"])和你gem所依赖的其他人。

你最终可能会得到一个Gemfile(如Theo所示),就像这样

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

干净整洁,易读。 希望这可以帮助。