module Volt::ClassEventable::ClassMethods
Public Instance Methods
on(*events, &callback)
click to toggle source
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.
# 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)
click to toggle source
# 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