Module: FlatKit::EventEmitter
Overview
A simplified Observable class for use internally
Instance Method Summary collapse
- #_listeners ⇒ Object
- #add_listener(listener) ⇒ Object
- #count_listeners ⇒ Object
- #notify_listeners(name:, data:, meta: nil) ⇒ Object
- #remove_listener(listener) ⇒ Object
- #remove_listeners ⇒ Object
Instance Method Details
#_listeners ⇒ Object
29 30 31 |
# File 'lib/flat_kit/event_emitter.rb', line 29 def _listeners @_listeners ||= Array.new end |
#add_listener(listener) ⇒ Object
5 6 7 8 9 |
# File 'lib/flat_kit/event_emitter.rb', line 5 def add_listener(listener) raise ::NoMethodError, "#{listener} does not resond to #on_event" unless listener.respond_to?(:on_event) self._listeners ||= [] self._listeners << listener unless _listeners.include?(listener) end |
#count_listeners ⇒ Object
11 12 13 |
# File 'lib/flat_kit/event_emitter.rb', line 11 def count_listeners _listeners.size end |
#notify_listeners(name:, data:, meta: nil) ⇒ Object
23 24 25 26 27 |
# File 'lib/flat_kit/event_emitter.rb', line 23 def notify_listeners(name:, data:, meta: nil) _listeners.each do |l| l.on_event(name: name, data: data, meta: ) end end |
#remove_listener(listener) ⇒ Object
15 16 17 |
# File 'lib/flat_kit/event_emitter.rb', line 15 def remove_listener(listener) _listeners.delete(listener) end |
#remove_listeners ⇒ Object
19 20 21 |
# File 'lib/flat_kit/event_emitter.rb', line 19 def remove_listeners _listeners.clear end |