class BunnyBurrow::Base

Attributes

log_prefix[RW]
log_request[RW]
log_request?[RW]
log_response[RW]
log_response?[RW]
logger[RW]
rabbitmq_connection[RW]
rabbitmq_exchange[RW]
rabbitmq_url[RW]
timeout[RW]
verify_peer[RW]
verify_peer?[RW]

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/bunny_burrow/base.rb, line 27
def initialize
  @log_request = false
  @log_response = false
  @timeout = 60
  @verify_peer = true
  @own_connection = true

  yield self if block_given?

  @connection = @rabbitmq_connection
  @own_connection = @connection.nil?
end

Public Instance Methods

shutdown() click to toggle source
# File lib/bunny_burrow/base.rb, line 40
def shutdown
  return if @shutdown
  log 'Shutting down'
  channel.close
  connection.close if @own_connection
  @shutdown = true
end

Private Instance Methods

channel() click to toggle source
# File lib/bunny_burrow/base.rb, line 59
def channel
  @channel ||= connection.create_channel
end
condition() click to toggle source
# File lib/bunny_burrow/base.rb, line 75
def condition
  @condition ||= ConditionVariable.new
end
connection() click to toggle source
# File lib/bunny_burrow/base.rb, line 50
def connection
  unless @connection
    @connection = Bunny.new(rabbitmq_url, verify_peer: @verify_peer)
    @connection.start
  end

  @connection
end
default_exchange() click to toggle source
# File lib/bunny_burrow/base.rb, line 63
def default_exchange
  @default_exchange ||= channel.default_exchange
end
lock() click to toggle source
# File lib/bunny_burrow/base.rb, line 71
def lock
  @lock ||= Mutex.new
end
log(message, level: :info) click to toggle source
# File lib/bunny_burrow/base.rb, line 79
def log(message, level: :info)
  return unless logger
  prefix = log_prefix || 'BunnyBurrow'
  message = "#{prefix}: #{message}"
  logger.send(level, message)
end
topic_exchange() click to toggle source
# File lib/bunny_burrow/base.rb, line 67
def topic_exchange
  @topic_exchange ||= channel.topic(rabbitmq_exchange, durable: true)
end