Class: Opener::CallbackHandler::Strategies::AmazonSqs
- Inherits:
-
Object
- Object
- Opener::CallbackHandler::Strategies::AmazonSqs
- Defined in:
- lib/opener/callback_handler/strategies/amazon_sqs.rb
Overview
Strategy for submitting data to an Amazon SQS queue. This strategy expects URIs in the following format:
sqs://<name>
Here <name> is the name of the queue to use.
Instance Attribute Summary collapse
- #sqs ⇒ Aws::SQS::Client readonly
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ AmazonSqs
constructor
A new instance of AmazonSqs.
- #process(uri, params = {}) ⇒ Object
- #queue_url_for_name(name) ⇒ String
- #queue_url_for_uri(uri) ⇒ String
Constructor Details
#initialize ⇒ AmazonSqs
Returns a new instance of AmazonSqs.
26 27 28 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 26 def initialize @sqs = Aws::SQS::Client.new end |
Instance Attribute Details
#sqs ⇒ Aws::SQS::Client (readonly)
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 15 class AmazonSqs attr_reader :sqs ## # @param [String] url # @return [TrueClass|FalseClass] # def self.pass_validation?(url) return !!(url =~ /^sqs:\/\/.+/) end def initialize @sqs = Aws::SQS::Client.new end # @param [String] uri The queue URI # @param [Hash] params The message to submit. def process(uri, params = {}) queue_url = queue_url_for_uri(uri) sqs.( :queue_url => queue_url, :message_body => JSON.dump(params) ) end # @param [String] uri # @return [String] def queue_url_for_uri(uri) parsed = Addressable::URI.parse(uri) return queue_url_for_name(parsed.host) end # @param [String] name # @return [String] def queue_url_for_name(name) sqs.get_queue_url(:queue_name => name).queue_url end end |
Class Method Details
.pass_validation?(url) ⇒ TrueClass|FalseClass
22 23 24 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 22 def self.pass_validation?(url) return !!(url =~ /^sqs:\/\/.+/) end |
Instance Method Details
#process(uri, params = {}) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 32 def process(uri, params = {}) queue_url = queue_url_for_uri(uri) sqs.( :queue_url => queue_url, :message_body => JSON.dump(params) ) end |
#queue_url_for_name(name) ⇒ String
51 52 53 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 51 def queue_url_for_name(name) sqs.get_queue_url(:queue_name => name).queue_url end |
#queue_url_for_uri(uri) ⇒ String
43 44 45 46 47 |
# File 'lib/opener/callback_handler/strategies/amazon_sqs.rb', line 43 def queue_url_for_uri(uri) parsed = Addressable::URI.parse(uri) return queue_url_for_name(parsed.host) end |