module Captio::Emitter

Public Class Methods

included(base) click to toggle source
# File lib/captio/emitter.rb, line 3
def self.included(base)
  prepended(base)
end
prepended(base) click to toggle source
# File lib/captio/emitter.rb, line 7
def self.prepended(base)
  base.extend ClassMethods
end

Public Instance Methods

emit(event, *args) click to toggle source
# File lib/captio/emitter.rb, line 22
def emit(event, *args)
  @listeners[event].each{ |l| l.call(*args) } if @listeners[event]
end
on(event, &block) click to toggle source
# File lib/captio/emitter.rb, line 11
def on(event, &block)
  if self.class.events.include?(event)
    @listeners ||= {}
    @listeners[event] ||= []
    @listeners[event] << block
    true
  else
    false
  end
end