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