lib/queuel/iron_mq/queue.rb in queuel-0.0.1 vs lib/queuel/iron_mq/queue.rb in queuel-0.1.0
- old
+ new
@@ -1,37 +1,26 @@
require 'queuel/iron_mq/poller'
+require 'queuel/base/queue'
+require 'forwardable'
module Queuel
module IronMq
- class Queue
- def initialize(client, queue_name)
- self.client = client
- self.name = queue_name
+ class Queue < Base::Queue
+ extend Forwardable
+ def_delegators :queue_connection, :peek
+
+ def peek(options = {})
+ Array(queue_connection.peek(options))
end
# For IronMQ it should just be (message)
- def push(*args)
- queue_connection.post *args
+ def push(message)
+ queue_connection.post message
end
- def pop(*args, &block)
- bare_message = queue_connection.get(*args)
- unless bare_message.nil?
- Message.new_from_iron_mq_object(bare_message).tap { |message|
- if block_given? && !message.nil?
- yield message
- message.delete
- end
- }
- end
- end
-
- def receive(options = {}, &block)
- Poller.new(self, options, block).poll
- end
-
private
- attr_accessor :client
- attr_accessor :name
+ def pop_bare_message(options = {})
+ queue_connection.get options
+ end
def queue_connection
@queue_connection ||= client.queue(name)
end
end