class Asynchronic::Notifier::InMemory
Public Instance Methods
publish(pid, event, data=nil)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/asynchronic/notifier/in_memory.rb, line 17 def unsubscribe(subscription_id) subscriptions.each_value { |s| s.delete subscription_id } end
unsubscribe_all()
click to toggle source
# File lib/asynchronic/notifier/in_memory.rb, line 21 def unsubscribe_all subscriptions.clear end
Private Instance Methods
subscriptions()
click to toggle source
# File lib/asynchronic/notifier/in_memory.rb, line 27 def subscriptions @subscriptions ||= Hash.new { |h,k| h[k] = {} } end