Class: ActionPubsub::Exchanges

Inherits:
Registry
  • Object
show all
Defined in:
lib/action_pubsub/exchanges.rb

Instance Method Summary collapse

Methods inherited from Registry

#[]=, #all, #keys

Instance Method Details

#[](val) ⇒ Object



14
15
16
17
18
19
# File 'lib/action_pubsub/exchanges.rb', line 14

def [](val)
  return super(val) if key?(val)

  add(val){ ::ActionPubsub::Exchanges.new  }
  super(val)
end

#register_exchange(exchange_name) ⇒ Object



9
10
11
12
# File 'lib/action_pubsub/exchanges.rb', line 9

def register_exchange(exchange_name)
  add(exchange_name) { ::ActionPubsub::Exchanges.new }
  self[exchange_name]
end

#register_queue(exchange_name, subscriber_name) ⇒ Object



3
4
5
6
7
# File 'lib/action_pubsub/exchanges.rb', line 3

def register_queue(exchange_name, subscriber_name)
  queue_name = [exchange_name, subscriber_name].join("/")
  queue_exists = self[exchange_name].all.any?{ |queue| queue.name == queue_name }
  self[exchange_name].add(subscriber_name) { ::ActionPubsub::Queue.spawn(queue_name) } unless queue_exists
end