Class: Asynchronic::Notifier::InMemory

Inherits:
Object
  • Object
show all
Defined in:
lib/asynchronic/notifier/in_memory.rb

Instance Method Summary collapse

Instance Method Details

#publish(pid, event, data = nil) ⇒ Object



5
6
7
8
9
# File 'lib/asynchronic/notifier/in_memory.rb', line 5

def publish(pid, event, data=nil)
  subscriptions[DataStore::Key[pid][event]].each_value do |block|
    block.call data
  end
end

#subscribe(pid, event, &block) ⇒ Object



11
12
13
14
15
# File 'lib/asynchronic/notifier/in_memory.rb', line 11

def subscribe(pid, event, &block)
  SecureRandom.uuid.tap do |subscription_id|
    subscriptions[DataStore::Key[pid][event]][subscription_id] = block
  end
end

#unsubscribe(subscription_id) ⇒ Object



17
18
19
# File 'lib/asynchronic/notifier/in_memory.rb', line 17

def unsubscribe(subscription_id)
  subscriptions.each_value { |s| s.delete subscription_id }
end

#unsubscribe_allObject



21
22
23
# File 'lib/asynchronic/notifier/in_memory.rb', line 21

def unsubscribe_all
  subscriptions.clear
end