Class: Circuitry::Provisioning::SubscriptionCreator
- Inherits:
-
Object
- Object
- Circuitry::Provisioning::SubscriptionCreator
- Includes:
- Services::SNS, Services::SQS
- Defined in:
- lib/circuitry/provisioning/subscription_creator.rb
Instance Attribute Summary collapse
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
-
#topics ⇒ Object
readonly
Returns the value of attribute topics.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(queue, topics) ⇒ SubscriptionCreator
constructor
A new instance of SubscriptionCreator.
- #subscribe_all ⇒ Object
Methods included from Services::SQS
Methods included from Services::SNS
Constructor Details
#initialize(queue, topics) ⇒ SubscriptionCreator
Returns a new instance of SubscriptionCreator.
17 18 19 20 21 22 23 |
# File 'lib/circuitry/provisioning/subscription_creator.rb', line 17 def initialize(queue, topics) raise ArgumentError, 'queue must be a Circuitry::Queue' unless queue.is_a?(Circuitry::Queue) raise ArgumentError, 'topics must be an array' unless topics.is_a?(Array) self.queue = queue self.topics = topics end |
Instance Attribute Details
#queue ⇒ Object
Returns the value of attribute queue.
10 11 12 |
# File 'lib/circuitry/provisioning/subscription_creator.rb', line 10 def queue @queue end |
#topics ⇒ Object
Returns the value of attribute topics.
11 12 13 |
# File 'lib/circuitry/provisioning/subscription_creator.rb', line 11 def topics @topics end |
Class Method Details
.subscribe_all(queue, topics) ⇒ Object
13 14 15 |
# File 'lib/circuitry/provisioning/subscription_creator.rb', line 13 def self.subscribe_all(queue, topics) new(queue, topics).subscribe_all end |
Instance Method Details
#subscribe_all ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/circuitry/provisioning/subscription_creator.rb', line 25 def subscribe_all topics.each do |topic| sns.subscribe(topic_arn: topic.arn, endpoint: queue.arn, protocol: 'sqs') end if topics.any? sqs.set_queue_attributes(queue_url: queue.url, attributes: build_policy) end end |