module Staticme::Events::Dispatcher
Public Class Methods
included(base)
click to toggle source
# File lib/staticme/events/dispatcher.rb, line 7 def self.included(base) base.class_eval do attr_accessor :events def on(event_name, &event_handler) ((self.events ||= {})[event_name.to_sym] ||= []).push(event_handler) self end def emit(event_name, *args) ((self.events ||= {})[event_name.to_sym]).tap do |event_pool| return if event_pool.nil? event_pool.map do |handler| handler.call(*args) end end self end end end
Public Instance Methods
emit(event_name, *args)
click to toggle source
# File lib/staticme/events/dispatcher.rb, line 17 def emit(event_name, *args) ((self.events ||= {})[event_name.to_sym]).tap do |event_pool| return if event_pool.nil? event_pool.map do |handler| handler.call(*args) end end self end
on(event_name, &event_handler)
click to toggle source
# File lib/staticme/events/dispatcher.rb, line 12 def on(event_name, &event_handler) ((self.events ||= {})[event_name.to_sym] ||= []).push(event_handler) self end