module Homie

Constants

VERSION

Public Instance Methods

broadcast(event, *args) click to toggle source
# File lib/homie.rb, line 28
def broadcast(event, *args)
  observers[event].each { |observer| observer.call(*args) }

  self
end
failed(*args) click to toggle source
# File lib/homie.rb, line 38
def failed(*args)
  broadcast(:failed, *args)
end
on(event, *objects, &block) click to toggle source
# File lib/homie.rb, line 16
def on(event, *objects, &block)
  raise(Homie::EventNotSpecifiedError) unless event && !event.empty?

  raise(Homie::ObserverNotPassedError) unless objects.all? { |object|  object.respond_to?(:call) }

  raise(Homie::ObserverNotPassedError) if (_observers = [*objects, block].compact).size == 0

  observers[event] += _observers

  self
end
succeeded(*args) click to toggle source
# File lib/homie.rb, line 34
def succeeded(*args)
  broadcast(:succeeded, *args)
end

Private Instance Methods

observers() click to toggle source
# File lib/homie.rb, line 44
def observers
  @observers ||= Hash.new { |hash, event| hash[event] = [] }
end