Class: CloudQueues::Claim
- Inherits:
-
Object
- Object
- CloudQueues::Claim
- Includes:
- Enumerable
- Defined in:
- lib/cloud-queues/claim.rb
Instance Attribute Summary collapse
-
#default_ttl ⇒ Object
Returns the value of attribute default_ttl.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
Instance Method Summary collapse
- #[](index) ⇒ Object
- #age ⇒ Object
- #delete ⇒ Object (also: #release)
- #each(&block) ⇒ Object
-
#initialize(queue, id, msgs) ⇒ Claim
constructor
A new instance of Claim.
- #messages ⇒ Object
- #path ⇒ Object
- #queue ⇒ Object
- #ttl ⇒ Object
- #update(options = {}) ⇒ Object
Constructor Details
#initialize(queue, id, msgs) ⇒ Claim
Returns a new instance of Claim.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cloud-queues/claim.rb', line 9 def initialize(queue, id, msgs) @client = queue.client @queue = queue.name @id = id # request the messages if we don't already have them @messages = msgs || @default_ttl = 43200 # 12 hours, server max end |
Instance Attribute Details
#default_ttl ⇒ Object
Returns the value of attribute default_ttl.
5 6 7 |
# File 'lib/cloud-queues/claim.rb', line 5 def default_ttl @default_ttl end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
7 8 9 |
# File 'lib/cloud-queues/claim.rb', line 7 def id @id end |
Instance Method Details
#[](index) ⇒ Object
28 29 30 |
# File 'lib/cloud-queues/claim.rb', line 28 def [](index) @messages[index] rescue [index] end |
#age ⇒ Object
51 |
# File 'lib/cloud-queues/claim.rb', line 51 def age; refresh["age"]; end |
#delete ⇒ Object Also known as: release
42 43 44 |
# File 'lib/cloud-queues/claim.rb', line 42 def delete @client.request(method: :delete, path: path, expects: 204) && true end |
#each(&block) ⇒ Object
24 25 26 |
# File 'lib/cloud-queues/claim.rb', line 24 def each(&block) @messages.each(&block) end |
#messages ⇒ Object
32 33 34 |
# File 'lib/cloud-queues/claim.rb', line 32 def @messages = (refresh) end |
#path ⇒ Object
47 48 49 |
# File 'lib/cloud-queues/claim.rb', line 47 def path "/queues/#{@queue}/claims/#{@id}" end |
#queue ⇒ Object
20 21 22 |
# File 'lib/cloud-queues/claim.rb', line 20 def queue Queue.new(@client, @queue) end |
#ttl ⇒ Object
52 |
# File 'lib/cloud-queues/claim.rb', line 52 def ttl; refresh["ttl"]; end |
#update(options = {}) ⇒ Object
36 37 38 39 40 |
# File 'lib/cloud-queues/claim.rb', line 36 def update( = {}) = .select { |opt| %w[ttl grace].include?(opt.to_s) } [:ttl] ||= @default_ttl unless ["ttl"] @client.request(method: :patch, path: path, body: , expects: 204) && true end |