module EXEL::Events
Provides methods for registering and triggering event listeners
Constants
- LISTENERS_KEY
Public Class Methods
included(other)
click to toggle source
# File lib/exel/events.rb, line 16 def self.included(other) other.class_eval { attr_reader :context } end
Public Instance Methods
register_listener(context, event, listener)
click to toggle source
# File lib/exel/events.rb, line 8 def register_listener(context, event, listener) listeners_for_event(event, context) << listener end
trigger(event, data = {})
click to toggle source
# File lib/exel/events.rb, line 12 def trigger(event, data = {}) listeners_for_event(event, context).each { |listener| listener.send(event, context, data) } end
Private Instance Methods
listeners(context)
click to toggle source
# File lib/exel/events.rb, line 28 def listeners(context) context[LISTENERS_KEY] ||= Hash.new([]) end
listeners_for_event(event, context)
click to toggle source
# File lib/exel/events.rb, line 22 def listeners_for_event(event, context) listeners(context).fetch(event) rescue KeyError listeners(context)[event] = [] end