Module: Tamashii::Hookable
- Included in:
- Hook
- Defined in:
- lib/tamashii/hookable.rb,
lib/tamashii/hookable/version.rb,
lib/tamashii/hookable/container.rb
Overview
Tamashii::Hookable
Defined Under Namespace
Classes: Container
Constant Summary collapse
- VERSION =
'0.1.0'
Instance Method Summary collapse
- #after(event, handler = nil, &block) ⇒ Object
- #before(event, handler = nil, &block) ⇒ Object
- #hook(action, event, handler = nil, &block) ⇒ Object
- #run(event, *args, &block) ⇒ Object
- #run_after(event, *args) ⇒ Object
- #run_before(event, *args) ⇒ Object
Instance Method Details
#after(event, handler = nil, &block) ⇒ Object
16 17 18 |
# File 'lib/tamashii/hookable.rb', line 16 def after(event, handler = nil, &block) hook(:after, event, handler, &block) end |
#before(event, handler = nil, &block) ⇒ Object
12 13 14 |
# File 'lib/tamashii/hookable.rb', line 12 def before(event, handler = nil, &block) hook(:before, event, handler, &block) end |
#hook(action, event, handler = nil, &block) ⇒ Object
20 21 22 |
# File 'lib/tamashii/hookable.rb', line 20 def hook(action, event, handler = nil, &block) _hook_container.register(action, event, handler, &block) end |
#run(event, *args, &block) ⇒ Object
24 25 26 27 28 |
# File 'lib/tamashii/hookable.rb', line 24 def run(event, *args, &block) run_before(event, *args) instance_exec(*args, &block) if block_given? run_after(event, *args) end |
#run_after(event, *args) ⇒ Object
34 35 36 |
# File 'lib/tamashii/hookable.rb', line 34 def run_after(event, *args) _hook_container.execute("after_#{event}", *args) end |
#run_before(event, *args) ⇒ Object
30 31 32 |
# File 'lib/tamashii/hookable.rb', line 30 def run_before(event, *args) _hook_container.execute("before_#{event}", *args) end |