Kur*_*aga -1 ruby gem ruby-on-rails
我想找到一个gem或者编写一个实现方法钩子的代码.
class A
include SomeModule
before_hook :meth, lambda { puts 'bla' }
def meth
puts 'meth'
end
end
# A.new.meth => "bla\nmeth\n"
Run Code Online (Sandbox Code Playgroud)
我正在使用Rails,但我知道回调和过滤器
meth 不是一个动作请帮帮我...
UPDATE
我发现了一个用于自动化此代码的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
Run Code Online (Sandbox Code Playgroud)
define_model_callbacks :create
def create
run_callbacks :create do
# do your thing here
end
end
Run Code Online (Sandbox Code Playgroud)
您甚至可以编写一个小帮助方法来隐藏此run_callbacks行.它可能看起来像这样:
hooked_method :create do
# do your thing here
end
Run Code Online (Sandbox Code Playgroud)