Module: Staticme::Events::Dispatcher
- Included in:
- Staticme
- Defined in:
- lib/staticme/events/dispatcher.rb
Class Method Summary collapse
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 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 |