module Hutch::Consumer::ClassMethods

Public Instance Methods

arguments(arguments = {}) click to toggle source

Allow to specify custom arguments that will be passed when creating the queue.

# File lib/hutch/consumer.rb, line 40
def arguments(arguments = {})
  @arguments = arguments
end
consume(*routing_keys) click to toggle source

Add one or more routing keys to the set of routing keys the consumer wants to subscribe to.

# File lib/hutch/consumer.rb, line 30
def consume(*routing_keys)
  @routing_keys = self.routing_keys.union(routing_keys)
end
get_arguments() click to toggle source

Returns consumer custom arguments.

# File lib/hutch/consumer.rb, line 55
def get_arguments
  @arguments || {}
end
get_queue_name() click to toggle source

The RabbitMQ queue name for the consumer. This is derived from the fully-qualified class name. Module separators are replaced with single colons, camelcased class names are converted to snake case.

# File lib/hutch/consumer.rb, line 47
def get_queue_name
  return @queue_name unless @queue_name.nil?
  queue_name = self.name.gsub(/::/, ':')
  queue_name.gsub!(/([^A-Z:])([A-Z])/) { "#{$1}_#{$2}" }
  queue_name.downcase
end
queue_name(name) click to toggle source

Explicitly set the queue name

# File lib/hutch/consumer.rb, line 35
def queue_name(name)
  @queue_name = name
end
routing_keys() click to toggle source

Accessor for the consumer’s routing key.

# File lib/hutch/consumer.rb, line 60
def routing_keys
  @routing_keys ||= Set.new
end