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  |