Class: Toiler::Aws::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/toiler/aws/message.rb

Overview

SQS Message abstraction Provides methods for querying and acting on a SQS message

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, queue_url, data) ⇒ Message

Returns a new instance of Message.



10
11
12
13
14
# File 'lib/toiler/aws/message.rb', line 10

def initialize(client, queue_url, data)
  @client = client
  @queue_url = queue_url
  @data = data
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



8
9
10
# File 'lib/toiler/aws/message.rb', line 8

def client
  @client
end

#dataObject

Returns the value of attribute data.



8
9
10
# File 'lib/toiler/aws/message.rb', line 8

def data
  @data
end

#queue_urlObject

Returns the value of attribute queue_url.



8
9
10
# File 'lib/toiler/aws/message.rb', line 8

def queue_url
  @queue_url
end

Instance Method Details

#attributesObject



53
54
55
# File 'lib/toiler/aws/message.rb', line 53

def attributes
  data.attributes
end

#bodyObject



49
50
51
# File 'lib/toiler/aws/message.rb', line 49

def body
  data.body
end

#change_visibility(options) ⇒ Object



23
24
25
26
27
# File 'lib/toiler/aws/message.rb', line 23

def change_visibility(options)
  client.change_message_visibility(
    options.merge(queue_url: queue_url, receipt_handle: receipt_handle)
  )
end

#deleteObject



16
17
18
19
20
21
# File 'lib/toiler/aws/message.rb', line 16

def delete
  client.delete_message(
    queue_url: queue_url,
    receipt_handle: data.receipt_handle
  )
end

#md5_of_bodyObject



45
46
47
# File 'lib/toiler/aws/message.rb', line 45

def md5_of_body
  data.md5_of_body
end

#md5_of_message_attributesObject



57
58
59
# File 'lib/toiler/aws/message.rb', line 57

def md5_of_message_attributes
  data.md5_of_message_attributes
end

#message_attributesObject



61
62
63
# File 'lib/toiler/aws/message.rb', line 61

def message_attributes
  data.message_attributes
end

#message_idObject



37
38
39
# File 'lib/toiler/aws/message.rb', line 37

def message_id
  data.message_id
end

#modify_ack_deadline!(timeout) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/toiler/aws/message.rb', line 29

def modify_ack_deadline!(timeout)
  client.change_message_visibility(
    queue_url: queue_url,
    receipt_handle: data.receipt_handle,
    visibility_timeout: timeout
  )
end

#receipt_handleObject



41
42
43
# File 'lib/toiler/aws/message.rb', line 41

def receipt_handle
  data.receipt_handle
end