Module: Baku::EventDispatcher
- Included in:
- Entity
- Defined in:
- lib/baku/event_dispatcher.rb
Instance Method Summary collapse
- #add_event_listener(event_name, method) ⇒ Object
- #dispatch_event(event_name, *args) ⇒ Object
- #remove_event_listener(event_name, method) ⇒ Object
Instance Method Details
#add_event_listener(event_name, method) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/baku/event_dispatcher.rb', line 3 def add_event_listener(event_name, method) @event_listeners ||= {} @event_listeners[event_name] ||= [] @event_listeners[event_name] << method end |
#dispatch_event(event_name, *args) ⇒ Object
14 15 16 17 |
# File 'lib/baku/event_dispatcher.rb', line 14 def dispatch_event(event_name, *args) return unless @event_listeners && @event_listeners.has_key?(event_name) @event_listeners[event_name].each { |f| f.call(*args) } end |
#remove_event_listener(event_name, method) ⇒ Object
10 11 12 |
# File 'lib/baku/event_dispatcher.rb', line 10 def remove_event_listener(event_name, method) @event_listeners[event_name].delete(method) end |