Как обернуть все методы в консоли Rails (IRB) в блок в Ruby? - PullRequest
0 голосов
/ 26 июня 2018

Я видел http://ruby -doc.org / stdlib-2.0.0 / libdoc / irb / rdoc / IRB.html и вижу различные способы настройки IRB. Но не видел как:

Напишите блок (или метод) так, чтобы всякий раз, когда команда запускалась в консоли Rails, она запускала блок.

Например:

begin
  puts :before
  yield
  puts :after
end

Затем, когда вы делаете

=> puts :OK
:before
:OK
:after

1 Ответ

0 голосов
/ 27 июня 2018

Если вы можете переключиться с IRB на Pry (гем pry-rails загрузит его автоматически для rails c), он предоставляет API хуков , который должен делать то, что вам нужно. Звучит так, как будто вам нужны события :before_eval и :after_eval.

Я не знаю эквивалентного механизма для IRB, хотя должна быть возможность взломать что-нибудь с помощью TracePoint.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...