Как заменить irb
и rails console
на pry/pry-console
глобально для каждого проекта, не включая его в проект?
Как установить 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 доступен в текущем пакете.
Чтобы заставить его работать, даже если Бандлер не считает, что Pry нужно активировать, вам придется повозиться с загрузкой гема — Бандлер очень старается сделать это невозможным.
Для этого вам понадобится файл ~/.rubyrc.rb
, который всегда загружается для всех команд ruby, экспортируя RUBYOPT=$HOME/.rubyrc
в файл .bashrc
/.zshrc
.
Затем этот файл может взломать внутренности Bundler, чтобы принудительно загрузить несвязанный гем. Вы также можете изменить Bundler.require
, чтобы Rails загружал все гемы в Gemfile, чтобы аналогичным образом принудительно использовать pry-rails
в любом приложении, содержащем rails
.
(Эта стратегия также позволяет вам глобально поддерживать binding.pry
без необходимости чего-либо явно требовать или добавлять гем в проект.)
pry
вместоirb
. Я сомневаюсь, что можно было бы войти в сеанс оболочкиpry
из кода, вызвавbinding.pry
без соответствующего гемсета для явной установкиpry
. - person Aleksei Matiushkin   schedule 09.08.2018