class TokenOfFire::Token

Public Class Methods

new(event_bus, scope, unique=false) click to toggle source
# File lib/token_of_fire/token.rb, line 3
def initialize(event_bus, scope, unique=false)
  @event_bus = event_bus
  @scope = scope
  @uuid = SecureRandom.uuid
  @unique = unique
  @subscription_uuids = []
  subscribe_to_all
end

Public Instance Methods

attach(event_name, handler, method_name) click to toggle source
# File lib/token_of_fire/token.rb, line 38
def attach(event_name, handler, method_name)
  @subscription_uuids << @event_bus.subscribe(event_name, filter, handler, method_name)
end
attach_subscriptions(list) click to toggle source
# File lib/token_of_fire/token.rb, line 32
def attach_subscriptions(list)
  list.each do |t|
    attach(t[0], t[1], t[2])
  end
end
filter() click to toggle source
# File lib/token_of_fire/token.rb, line 12
def filter
  filter = @scope.filter.dup
  filter.merge!(:uuid => @uuid) if @unique
  filter
end
fire(event_name, payload) click to toggle source
# File lib/token_of_fire/token.rb, line 18
def fire(event_name, payload)
  @event_bus.fire(event_name, payload, filter)
end
fire_sync(event_name, payload) click to toggle source
# File lib/token_of_fire/token.rb, line 22
def fire_sync(event_name, payload)
  @event_bus.fire_sync(event_name, payload, filter)
end
release() click to toggle source
# File lib/token_of_fire/token.rb, line 26
def release
  @subscription_uuids.each do |uuid|
    @event_bus.unsubscribe(uuid)
  end
end

Private Instance Methods

subscribe_to_all() click to toggle source
# File lib/token_of_fire/token.rb, line 43
def subscribe_to_all
  @scope.subscriptions.each do |subscription|
    attach(subscription[:event_name], subscription[:handler], subscription[:method_name])
  end
end