当将捆绑器用于一般项目,特别是 Rails 时,您只能访问 Gemfile 中定义的 gem。虽然这是有道理的,但它可能是有限的。大多数情况下,当我想使用团队其他成员不使用的某个 RSpec 格式化程序时,我发现它会受到限制。除非它在 Gemfile 中,否则无法访问。
有什么办法,或者我必须将它添加到 Gemfile?
更新:我的问题不是 Bundler,而是 Spork。在没有 Spork 的情况下运行 RSpec 时,我可以毫无问题地使用我想要的任何格式化程序。
更新 #2:看起来使用 Bundler 仍然是问题的原因。使用 Spork 和不使用 Spork 的区别在于,在不使用 Spork 的情况下运行 RSpec 时,它会在加载项目并进入 Bundler“沙箱”之前加载格式化程序。
使用捆绑器:
$ bundle exec irb
>> require 'fivemat'
LoadError: cannot load such file -- fivemat
from (irb):1:in `require'
from (irb):1
from /Users/arikfr/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
没有捆绑器:
$ irb
>> require 'fivemat'
=> true