class EventBus::Broker::Rabbit

Public Class Methods

close_connection() click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 18
def self.close_connection
  @@connection.close
end

Public Instance Methods

connection() click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 4
def connection
  @@connection ||= session
end
consume(event_name, &block) click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 8
def consume(event_name, &block)
  Queue.subscribe(channel, event_name, &block)
end
produce(events) click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 12
def produce(events)
  events.each do |event|
    Topic.produce(channel, event)
  end
end

Private Instance Methods

channel() click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 24
def channel
  @@channel ||= connection.create_channel
  @@channel = connection.create_channel if @@channel.closed?
  @@channel
end
session() click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 30
def session
  Bunny.new(url).tap do |session|
    session.start
  end
end
url() click to toggle source
# File lib/event_bus/broker/rabbit.rb, line 36
def url
  EventBus::Config::FULL_URL
end