在我的宝石中使用bundler

时间:2010-11-08 20:20:17

标签: ruby rubygems gem bundler

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

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

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

3 个答案:

答案 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

漂亮干净,易于阅读。希望这会有所帮助。