Class: TokenOfFire::Token

Inherits:
Object
  • Object
show all
Defined in:
lib/token_of_fire/token.rb

Instance Method Summary collapse

Constructor Details

#initialize(event_bus, scope, unique = false) ⇒ Token

Returns a new instance of Token.



3
4
5
6
7
8
9
10
# 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

Instance Method Details

#attach(event_name, handler, method_name) ⇒ Object



38
39
40
# 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) ⇒ Object



32
33
34
35
36
# 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

#filterObject



12
13
14
15
16
# 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) ⇒ Object



18
19
20
# 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) ⇒ Object



22
23
24
# File 'lib/token_of_fire/token.rb', line 22

def fire_sync(event_name, payload)
  @event_bus.fire_sync(event_name, payload, filter)
end

#releaseObject



26
27
28
29
30
# File 'lib/token_of_fire/token.rb', line 26

def release
  @subscription_uuids.each do |uuid|
    @event_bus.unsubscribe(uuid)
  end
end