class PowerTypes::Observer

Attributes

object[R]

Public Class Methods

add_trigger(_type, _event, _handler = nil, _options = {}, &_block) click to toggle source
# File lib/power_types/patterns/observer/observer.rb, line 19
def self.add_trigger(_type, _event, _handler = nil, _options = {}, &_block)
  triggers << PowerTypes::Trigger.new(
    _type,
    _event,
    (_handler || _block),
    _options
  )

  triggers.last
end
new(_object) click to toggle source
# File lib/power_types/patterns/observer/observer.rb, line 34
def initialize(_object)
  @object = _object
end
trigger(_type, _event, _object) click to toggle source
# File lib/power_types/patterns/observer/observer.rb, line 13
def self.trigger(_type, _event, _object)
  triggers.select { |t| t.type == _type && t.event == _event }.each do |trigger|
    trigger.call(new(_object))
  end
end
triggers() click to toggle source
# File lib/power_types/patterns/observer/observer.rb, line 30
def self.triggers
  @triggers ||= []
end