如果我正在使用Bundler和RSpec开发一个宝石进行测试。我在哪里Bundler.setup
?假设我的gem名为fancy-gem
,我的目录设置类似于以下内容:
Gemfile
Gemfile.lock
lib/
fancy-gem.rb
Rakefile
README
spec/
...
我应该在'fancy-gem.rb'中执行Bundler.setup
,还是会导致其他可能使用bundler的宝石出现问题?我在想,当我不这样做的时候,就没有办法保证我需要加载正确版本的第三方库。
我已经问过I need to add Bundler itself to the Gemfile。答案是否定的,但现在我不太确定,因为如果我在某处执行Bundler.setup,那么Bundler实际上是我的Gem的依赖项,并且应该在从rubygems.org下载时与我的Gem一起安装
答案 0 :(得分:3)
在我看来,你既不应该依赖捆绑器,也不应该在你的宝石中使用它。我这样做的方法就是在lib / fancy-gem.rb中简单地要求你的gem的依赖(几乎每个gem只有少量的运行时依赖,所以这不应该是太麻烦了)我会叫Bundler .setup仅在开发文件中(如spec_helper.rb或Rakefile)。这样,您就不会使用使用gem的应用程序,并且在开发gem时仍然可以获得自动依赖关系管理的所有便利。