lib/bunny/queue.rb in celldee-bunny-0.0.2 vs lib/bunny/queue.rb in celldee-bunny-0.0.3
- old
+ new
@@ -14,23 +14,35 @@
)
end
def pop(opts = {})
self.delivery_tag = nil
+
+ # do we want the header?
+ hdr = opts.delete(:header)
+
client.send_frame(
- Protocol::Basic::Get.new({ :queue => name, :consumer_tag => name, :no_ack => !opts.delete(:ack), :nowait => true }.merge(opts))
+ Protocol::Basic::Get.new({ :queue => name,
+ :consumer_tag => name,
+ :no_ack => !opts.delete(:ack),
+ :nowait => true }.merge(opts))
)
method = client.next_method
return unless method.is_a?(Protocol::Basic::GetOk)
self.delivery_tag = method.delivery_tag
header = client.next_payload
msg = client.next_payload
raise 'unexpected length' if msg.length < header.size
- msg
+ if hdr
+ [header, msg]
+ else
+ msg
+ end
+
end
def ack
client.send_frame(
Protocol::Basic::Ack.new(:delivery_tag => delivery_tag)
@@ -59,20 +71,25 @@
def bind(exchange, opts = {})
exchange = exchange.respond_to?(:name) ? exchange.name : exchange
bindings[exchange] = opts
client.send_frame(
- Protocol::Queue::Bind.new({ :queue => name, :exchange => exchange, :routing_key => opts.delete(:key), :nowait => true }.merge(opts))
+ Protocol::Queue::Bind.new({ :queue => name,
+ :exchange => exchange,
+ :routing_key => opts.delete(:key),
+ :nowait => true }.merge(opts))
)
end
def unbind(exchange, opts = {})
exchange = exchange.respond_to?(:name) ? exchange.name : exchange
bindings.delete(exchange)
client.send_frame(
- Protocol::Queue::Unbind.new({
- :queue => name, :exchange => exchange, :routing_key => opts.delete(:key), :nowait => true }.merge(opts)
+ Protocol::Queue::Unbind.new({ :queue => name,
+ :exchange => exchange,
+ :routing_key => opts.delete(:key),
+ :nowait => true }.merge(opts)
)
)
end
def delete(opts = {})
\ No newline at end of file