Я хочу найти драгоценный камень или написать код, который реализует крючки для методов.Рубин: крючки для методов
class A
include SomeModule
before_hook :meth, lambda { puts 'bla' }
def meth
puts 'meth'
end
end
# A.new.meth => "bla\nmeth\n"
Я использую Rails, и я знаю об обратных вызовов и фильтров, но
meth
не действие- Я не палочка, чтобы изменить то, как я вызов метода
Помогите пожалуйста ...
ОБНОВЛЕНИЕ
я найти драгоценный камень для автоматизации этого кода:
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
возможный дубликат [Определение понятия «method_called» .. Как мне сделать метод крюк который вызывается каждый раз, когда любая функция класса будет вызываться?] (HTTP: // StackOverflow. com/questions/3236194/define-method-called-how-do-i-make-a-hook-method-which-gets-called-every-t) –
Взгляните http://stackoverflow.com/a/ 10471857/1322562 – jdoe
@jdoe Да, это именно то, что я хочу, но нет ли этой драгоценности этой функции? – Kuraga