class Warren::Handler::Log::Channel

Mimics a {Broadcast::Channel} but instead passes out to a logger

Public Class Methods

new(logger, routing_key_template: '%s') click to toggle source
# File lib/warren/handler/log.rb, line 12
def initialize(logger, routing_key_template: '%s')
  @logger = logger
  @routing_key_template = routing_key_template
end

Public Instance Methods

<<(message) click to toggle source

Logs `message` to the configured logger

@param message [#routing_key,#payload] A message should respond to routing_key and payload.

@see Warren::Message::Full

@return [Warren::Handler::Broadcast::Channel] returns self for chaining

# File lib/warren/handler/log.rb, line 24
def <<(message)
  @logger.info "Published: #{key_for(message)}"
  @logger.debug "Payload: #{message.payload}"
  self
end
exchange(name, options) click to toggle source
# File lib/warren/handler/log.rb, line 30
def exchange(name, options)
  @logger.debug "Declared exchange: #{name}, #{options.inspect}"
  Exchange.new(name, options)
end
prefetch(number) click to toggle source

NOOP - Provided for API compatibility

# File lib/warren/handler/log.rb, line 41
def prefetch(number); end
queue(name, options) click to toggle source
# File lib/warren/handler/log.rb, line 35
def queue(name, options)
  @logger.debug "Declared queue: #{name}, #{options.inspect}"
  Queue.new(@logger, name)
end

Private Instance Methods

key_for(message) click to toggle source
# File lib/warren/handler/log.rb, line 45
def key_for(message)
  @routing_key_template % message.routing_key
end