在我的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
干净整洁,易读。 希望这可以帮助。