Как установить pry/pry-rails глобально для всех проектов?

Как можно заменить irb а также rails console с pry/pry-console глобально для каждого проекта без необходимости включать его в проект?

1 ответ

Простой режим - взломать .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 файл, который вы гарантированно всегда загружаете для всех команд ruby ​​путем экспорта RUBYOPT=$HOME/.rubyrc в вашем .bashrc / .zshrc,

Этот файл может затем взломать внутреннюю часть Bundler, чтобы принудительно загрузить не связанный гем. Вы также можете обезьяна-патч Bundler.require, как Rails загружает все гемы в Gemfile, чтобы аналогичным образом заставить pry-rails в любом приложении, которое содержит rails,

(Эта стратегия также позволяет вам глобально поддерживать binding.pryбез необходимости явно требовать что-либо или добавлять драгоценный камень в проект.)

Другие вопросы по тегам