如何将 Rails 控制台 (IRB) 中的所有方法包装在 Ruby 中的一个块中?



我已经看过 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

如果你能够从 IRB 切换到 Pry(pry-railsgem 会自动加载它rails c(,它提供了一个钩子 API,应该可以满足你的需要。听起来你想要:before_eval:after_eval事件。

我不知道IRB的等效机制,尽管应该可以使用TracePoint破解某些东西。

最新更新