Module: Volt::ClassEventable::ClassMethods
- Defined in:
- lib/volt/reactive/class_eventable.rb
Instance Method Summary collapse
-
#on(*events, &callback) ⇒ Object
Eventable also provides a static version of on, which allows you to setup on events at the class level.
- #remove_listener(event, listener) ⇒ Object
Instance Method Details
#on(*events, &callback) ⇒ Object
Eventable also provides a static version of on, which allows you to setup on events at the class level. When the event triggers, self will be set to the instance it was triggered on.
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/volt/reactive/class_eventable.rb', line 19 def on(*events, &callback) fail '.on requires an event' if events.size == 0 listener = Listener.new(self, events, callback) self.__listeners__ ||= {} events.each do |event| listeners = self.__listeners__ listeners[event] ||= [] listeners[event] << listener end end |
#remove_listener(event, listener) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/volt/reactive/class_eventable.rb', line 33 def remove_listener(event, listener) listeners = self.__listeners__ if listeners listeners[event].delete(listener) if listeners[event].size == 0 # No registered listeners now on this event listeners.delete(event) end end end |