如何在每个项目中全局用irb
替换rails console
和pry/pry-console
,而不必将其包含在项目中?
答案 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添加到项目中。)