Module: Hatenablog::AfterHook
- Included in:
- Entry
- Defined in:
- lib/hatenablog/entry.rb
Instance Method Summary collapse
-
#after_hook(hook, *methods) ⇒ Object
Register a hooking method for given methods.
Instance Method Details
#after_hook(hook, *methods) ⇒ Object
Register a hooking method for given methods. The hook method is executed after calling given methods.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/hatenablog/entry.rb', line 10 def after_hook(hook, *methods) methods.each do |method| origin_method = "#{method}_origin".to_sym if instance_methods.include? origin_method raise NameError, "#{origin_method} isn't a unique name" end alias_method origin_method, method define_method(method) do |*args, &block| result = send(origin_method, *args, &block) send(hook) result end end end |