Как установить 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
без необходимости явно требовать что-либо или добавлять драгоценный камень в проект.)