Class: AWS::SQS::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/aws/sqs/queue.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, sqs_client) ⇒ Queue

Returns a new instance of Queue.



14
15
16
# File 'lib/aws/sqs/queue.rb', line 14

def initialize(name, sqs_client)
  @name, @sqs_client = name, sqs_client
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



12
13
14
# File 'lib/aws/sqs/queue.rb', line 12

def name
  @name
end

Instance Method Details

#delete_message(receipt_handle) ⇒ Object

Delete a message



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/aws/sqs/queue.rb', line 52

def delete_message(receipt_handle)
  params = {}
   params['ReceiptHandle'] = receipt_handle
	result = @sqs_client.make_request('DeleteMessage', self.name, params)
	unless result.include?('Error')
		return true
	else
		raise Exception, "Amazon SQS Error Code :" + result['Error'][0]['Code'][0] +
		                 "\n" + result['Error'][0]['Message'][0]
end
end

#get_queue_attributes(attribute) ⇒ Object

Get a queue attribute



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/aws/sqs/queue.rb', line 67

def get_queue_attributes(attribute)
	  params = {}
    params['AttributeName'] = attribute
		result = @sqs_client.make_request('GetQueueAttributes', self.name, params)
		unless result.include?('Error')
			return result['GetQueueAttributesResult'][0]['Attribute'][0]["Value"][0]
		else
			raise Exception, "Amazon SQS Error Code :" + result['Error'][0]['Code'][0] +
			                 "\n" + result['Error'][0]['Message'][0]
	end
end

#receive_messages(max_number_of_messages = -1,, visibility_timeout = -1)) ⇒ Object

Get a message(s) from your queue



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/aws/sqs/queue.rb', line 36

def receive_messages(max_number_of_messages = -1, visibility_timeout = -1)
  params = {}
   params['MaxNumberOfMessages'] = max_number_of_messages if max_number_of_messages > -1
   params['VisibilityTimeout'] = visibility_timeout if visibility_timeout > -1
	result = @sqs_client.make_request('ReceiveMessage', self.name, params)
	unless result.include?('Error')
		return result['ReceiveMessageResult']
	else
		raise Exception, "Amazon SQS Error Code :" + result['Error'][0]['Code'][0] +
		                 "\n" + result['Error'][0]['Message'][0]
end
end

#send_message(body) ⇒ Object

Send a message to your queue



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/aws/sqs/queue.rb', line 21

def send_message(body)
 params = {}
  params['MessageBody'] = body
result = @sqs_client.make_request('SendMessage', self.name, params)
unless result.include?('Error')
	return result['SendMessageResult'][0]['MessageId'][0].to_s
else
	raise Exception, "Amazon SQS Error Code :" + result['Error'][0]['Code'][0] +
	                 "\n" + result['Error'][0]['Message'][0]
  			end
end