Class: CloudQueues::Message
- Inherits:
-
Object
- Object
- CloudQueues::Message
- Defined in:
- lib/cloud-queues/message.rb
Instance Attribute Summary collapse
-
#body ⇒ Object
readonly
Returns the value of attribute body.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #age ⇒ Object
- #claim ⇒ Object
- #delete! ⇒ Object
-
#initialize(queue, message) ⇒ Message
constructor
A new instance of Message.
-
#path ⇒ Object
beware using this path method.
- #queue ⇒ Object
- #to_hash ⇒ Object
- #ttl ⇒ Object
Constructor Details
#initialize(queue, message) ⇒ Message
Returns a new instance of Message.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/cloud-queues/message.rb', line 6 def initialize(queue, ) @client = queue.client @queue = queue.name href = URI.parse(["href"]) @id = href.path.split('/')[-1] @claim = href.query.match(/(^|&)claim_id=([^&]+)/)[2] rescue nil @body = ["body"] @age = ["age"] @ttl = ["ttl"] end |
Instance Attribute Details
#body ⇒ Object (readonly)
Returns the value of attribute body.
4 5 6 |
# File 'lib/cloud-queues/message.rb', line 4 def body @body end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
4 5 6 |
# File 'lib/cloud-queues/message.rb', line 4 def id @id end |
Instance Method Details
#[](key) ⇒ Object
46 47 48 |
# File 'lib/cloud-queues/message.rb', line 46 def [](key) @body[key] end |
#age ⇒ Object
34 |
# File 'lib/cloud-queues/message.rb', line 34 def age; @age; end |
#claim ⇒ Object
26 27 28 |
# File 'lib/cloud-queues/message.rb', line 26 def claim @claim.nil? ? nil : Claim.new(queue, @claim, nil) end |
#delete! ⇒ Object
18 19 20 |
# File 'lib/cloud-queues/message.rb', line 18 def delete! @client.request(method: :delete, path: path, expects: 204) && true end |
#path ⇒ Object
beware using this path method. it could return a path with a query argument at the end. this is to ensure the claim_id is provided whenever operations against this message are performed, however it could end up causing string formatting problems depending on how it’s used.
41 42 43 44 |
# File 'lib/cloud-queues/message.rb', line 41 def path query = @claim ? "?claim_id=#{@claim}" : "" "/queues/#{@queue}/messages/#{@id}#{query}" end |
#queue ⇒ Object
22 23 24 |
# File 'lib/cloud-queues/message.rb', line 22 def queue Queue.new(@client, @queue) end |
#to_hash ⇒ Object
30 31 32 |
# File 'lib/cloud-queues/message.rb', line 30 def to_hash {ttl: @ttl, body: @body} end |
#ttl ⇒ Object
35 |
# File 'lib/cloud-queues/message.rb', line 35 def ttl; @ttl; end |