code: def declare_queue(channel, exchange, name, key, options = {})
        channel.queue(name, options) do |queue|
          # Check if additional bindings are needed
          unless default_exchange?(exchange.name)
            queue.bind(exchange, { :routing_key => key })
          end
  
          log.debug("Queue #{queue.name.inspect} bound to #{exchange.name.inspect}")
        end
      end
docs: Declare and bind a queue to the specified exchange via the
   supplied routing key.
  
   @param channel [AMQP::Channel]
   @param exchange [AMQP::Exchange]
   @param name [String]
   @param key [String]
   @param options [Hash]
   @return [AMQP::Queue]
   @api public