Module: Baku::EventDispatcher

Included in:
Entity
Defined in:
lib/baku/event_dispatcher.rb

Instance Method Summary collapse

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