Class: Fog::Rackspace::Queues::Queue
- Defined in:
- lib/fog/rackspace/models/queues/queue.rb
Instance Attribute Summary
Attributes inherited from Model
Instance Method Summary collapse
- #claims ⇒ Object
-
#dequeue(ttl, grace, options = {}, &block) ⇒ Object
Helper method to claim (dequeue) a single message, including destroying it.
- #destroy ⇒ Object
-
#enqueue(body, ttl, options = {}) ⇒ Object
Helper method to enqueue a single message.
- #messages ⇒ Object
- #save ⇒ Object
- #stats ⇒ Object
Methods inherited from Model
#initialize, #inspect, #reload, #symbolize_keys, #to_json, #wait_for
Methods included from Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Core::DeprecatedConnectionAccessors
#connection, #connection=, #prepare_service_value
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #requires, #requires_one
Constructor Details
This class inherits a constructor from Fog::Model
Instance Method Details
#claims ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 25 def claims @claims ||= begin Fog::Rackspace::Queues::Claims.new({ :service => service, :queue => self }) end end |
#dequeue(ttl, grace, options = {}, &block) ⇒ Object
Helper method to claim (dequeue) a single message, including destroying it
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 40 def dequeue(ttl, grace, = {}, &block) claim = claims.create( .merge( { :limit => 1, :ttl => ttl, :grace => grace })) if claim = claim..first yield .destroy true else false end end |
#destroy ⇒ Object
65 66 67 68 69 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 65 def destroy requires :name service.delete_queue(name) true end |
#enqueue(body, ttl, options = {}) ⇒ Object
Helper method to enqueue a single message
35 36 37 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 35 def enqueue(body, ttl, = {}) .create(.merge({:body => body, :ttl => ttl})) end |
#messages ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 10 def @messages ||= begin Fog::Rackspace::Queues::Messages.new({ :service => service, :queue => self, :client_id => service.client_id, :echo => true }) end end |
#save ⇒ Object
59 60 61 62 63 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 59 def save requires :name data = service.create_queue(name) true end |
#stats ⇒ Object
21 22 23 |
# File 'lib/fog/rackspace/models/queues/queue.rb', line 21 def stats service.get_queue_stats(name).body['messages'] end |