def initialize(channel, queue, consumer_tag = self.class.tag_generator.generate_for(queue), exclusive = false, no_ack = false, arguments = {}, no_local = false, &block)
@callbacks = Hash.new
@channel = channel || raise(ArgumentError, "channel is nil")
@connection = channel.connection || raise(ArgumentError, "connection is nil")
@queue = queue || raise(ArgumentError, "queue is nil")
@consumer_tag = consumer_tag
@exclusive = exclusive
@no_ack = no_ack
@arguments = arguments
@no_local = no_local
self.register_with_channel
self.register_with_queue
end