我想找到一个 gem 或者编写一个为方法实现钩子的代码。
class A
include SomeModule
before_hook :meth, lambda { puts 'bla' }
def meth
puts 'meth'
end
end
# A.new.meth => "bla\nmeth\n"
我正在使用 Rails,我知道回调和过滤器,但是
meth
不是动作- 我不想改变我的方法调用方式
请帮帮我...
更新
我找到了一个用于自动化此代码的 gem:
include ActiveSupport::Callbacks
define_callbacks :meth_callback
set_callback :meth_callback, :before do |object|
# my code
end
def meth_with_callback
run_callbacks(:meth_callback) { meth }
end
alias_method_chain :meth, :callback