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

时间:2018-06-26 18:45:07

标签: ruby-on-rails 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

1 个答案:

答案 0 :(得分:2)

如果您能够从IRB切换到Pry(pry-rails gem将自动为rails c加载它),它将提供a hooks API,它可以满足您的需求。听起来好像您想要:before_eval:after_eval事件。

我不知道IRB的等效机制,尽管可以使用TracePoint入侵某些东西。