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