class Lapine::Consumer::Topology

Public Instance Methods

close!() click to toggle source
# File lib/lapine/consumer/topology.rb, line 27
def close!
  return unless @cons
  @cons.values.each do |conn|
    conn.close!
  end
end
each_binding() { |node, get_conn(node), node, classes| ... } click to toggle source
# File lib/lapine/consumer/topology.rb, line 7
def each_binding
  config.queues.each do |node|
    classes = classify(node['handlers'])
    yield node['q'], get_conn(node['topic']), node['routing_key'], classes
  end
end
each_queue_to_delete() { |node, get_conn(node), node, classes| ... } click to toggle source
# File lib/lapine/consumer/topology.rb, line 14
def each_queue_to_delete
  config.delete_queues.each do |node|
    classes = classify(node['handlers'])
    yield node['q'], get_conn(node['topic']), node['routing_key'], classes
  end
end
each_topic() { |topic| ... } click to toggle source
# File lib/lapine/consumer/topology.rb, line 21
def each_topic
  config.topics.each do |topic|
    yield topic
  end
end

Private Instance Methods

classify(handlers) click to toggle source
# File lib/lapine/consumer/topology.rb, line 36
def classify(handlers)
  return [] unless handlers
  handlers.map do |handler|
    handler.split('::').inject(Object) do |const, name|
      const.const_get(name)
    end
  end
end
debug(msg) click to toggle source
# File lib/lapine/consumer/topology.rb, line 55
def debug(msg)
  return unless config.debug?
  return unless logger
  logger.info msg
end
get_conn(name) click to toggle source
# File lib/lapine/consumer/topology.rb, line 45
def get_conn(name)
  @cons ||= {}.tap do |cons|
    each_topic do |topic|
      debug "Connecting to RabbiMQ: topic: #{topic}, #{config.connection_properties}"
      cons[topic] = Lapine::Consumer::Connection.new(config, topic)
    end
  end
  @cons[name]
end