如何为所有项目全局安装撬/撬轨?

时间:2018-08-09 12:14:16

标签: ruby-on-rails ruby pry pry-rails

如何在每个项目中全局用irb替换rails consolepry/pry-console,而不必将其包含在项目中?

1 个答案:

答案 0 :(得分:0)

简易模式是入侵.irbrc,以便在任何尝试加载IRB的情况下,您接管并强制其加载Pry:

begin
  gem "pry"
rescue => ex
  $stderr.puts ex.message
else
  require "pry"
  Pry.start
  exit!
end

但是,如果您使用的是Bundler,则只有在当前捆绑包中有Pry的情况下,这仍然有效。


要使其即使在Bundler认为不应该激活Pry的情况下也能正常工作,则需要在加载宝石时胡闹-Bundler会尽全力使​​其变为不可能。

为此,您需要一个~/.rubyrc.rb文件,通过将RUBYOPT=$HOME/.rubyrc导出到.bashrc / .zshrc中,确保始终为所有ruby命令加载该文件。

然后,该文件可以侵入Bundler的内部,从而强制加载非捆绑的gem。您还可以猴子Bundler.require补丁,这是Rails加载Gemfile中所有gem的方式,以类似的方式在包含pry-rails的任何应用程序中强制rails

(此策略还使您可以全局支持binding.pry,而无需明确要求任何东西,也无需将gem添加到项目中。)