【问题标题】:How to install pry/pry-rails globally for all projects?如何为所有项目全局安装 pry/pry-rails?
【发布时间】:2018-08-09 12:14:15
【问题描述】:

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

【问题讨论】:

  • 嗯。全局安装它并调用pry 而不是irb。我怀疑是否有可能通过调用binding.pry 从代码中进入pry shell 会话,而无需明确安装pry

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


【解决方案1】:

简单模式是破解你的.irbrc,这样当任何东西试图加载 IRB 时,你接管并强制它加载 Pry:

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

但是,如果您使用的是 Bundler,则仅当 Pry 在当前捆绑包中可用时,它仍然有效。


为了让它在 Bundler 认为不应该允许激活 Pry 时也能正常工作,您需要对 gem 加载进行猴子处理——Bundler 非常努力地让它变得不可能。

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

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

(此策略还允许您全局支持binding.pry,而无需明确要求任何内容,或将gem 添加到项目中。)

【讨论】:

  • 关于需要的额外 hack 的任何其他信息?这适用于当前的撬轨吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多