Class: Announce::Adapters::ShoryukenAdapter::Topic

Inherits:
BaseAdapter::Topic show all
Defined in:
lib/announce/adapters/shoryuken_adapter.rb

Instance Attribute Summary

Attributes inherited from BaseAdapter::Destination

#action, #options, #subject

Instance Method Summary collapse

Methods inherited from BaseAdapter::Destination

app, delimiter, #initialize, #name, name_for, namespace, prefix

Constructor Details

This class inherits a constructor from Announce::Adapters::BaseAdapter::Destination

Instance Method Details

#arnObject



105
106
107
108
109
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 105

def arn
   = Shoryuken::Client.
  region = sns.config[:region]
  "arn:aws:sns:#{region}:#{}:#{name}"
end

#createObject



86
87
88
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 86

def create
  sns.create_topic(name: name)[:topic_arn]
end

#publish(message, options = {}) ⇒ Object



82
83
84
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 82

def publish(message, options = {})
  Shoryuken::Client.topics(name).send_message(message, options)
end

#snsObject



111
112
113
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 111

def sns
  Shoryuken::Client.sns
end

#subscribe(queue) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 90

def subscribe(queue)
  subscription_arn = sns.subscribe(
    topic_arn: arn,
    protocol: 'sqs',
    endpoint: queue.arn
  )[:subscription_arn]

  sns.set_subscription_attributes(
    subscription_arn: subscription_arn,
    attribute_name: 'RawMessageDelivery',
    attribute_value: 'true'
  )
  subscription_arn
end