2011-01-21 106 views
0

如果我正在使用Bundler和RSpec开发一个gem进行测试。我在哪里做我的Bundler.setup?让我们假设我的宝石被称为fancy-gem和我的目录设置是类似以下内容:我必须在哪里做Bundler设置?

Gemfile 
Gemfile.lock 
lib/ 
    fancy-gem.rb 
Rakefile 
README 
spec/ 
    ... 

如果我在“花式gem.rb”执行Bundler.setup或不与可能使用捆绑其他宝石这项事业的问题?我在想,当我没有这样做时,就没有办法保证我要求的第三方库的正确版本被加载。

我已经问过,如果I need to add Bundler itself to the Gemfile。答案是否定的,但现在我不太确定,因为如果我在某处执行Bundler.setup,那么Bundler实际上是我的Gem的依赖项,并且应该在从rubygems.org下载时与我的Gem一起安装。

回答

3

在我看来,你不应该依赖捆绑软件,也不要在你的宝石中使用它。我这样做的方式只需要在lib/fancy-gem.rb中使用gem的依赖关系(几乎每个gem都只有少数运行时依赖项,所以这不应该太麻烦),我会打电话给Bundler .setup只在开发文件中(如spec_helper.rb或Rakefile)。通过这种方式,您不需要使用使用您的宝石的应用程序,并在开发宝石时仍然可以自动依赖管理的所有便利。

+0

你通常如何要求运行时依赖关系?你只是使用`require`还是你使用`gem'...','〜> 1.0.0';要求“...”明确要求某个版本? – t6d 2011-01-22 10:37:00

相关问题