Class: Announce::Adapters::ShoryukenAdapter::Topic
Instance Attribute Summary
#action, #options, #subject
Instance Method Summary
collapse
app, delimiter, #initialize, #name, name_for, namespace, prefix
Instance Method Details
#arn ⇒ Object
105
106
107
108
109
|
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 105
def arn
account_id = Shoryuken::Client.account_id
region = sns.config[:region]
"arn:aws:sns:#{region}:#{account_id}:#{name}"
end
|
#create ⇒ Object
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
|
#sns ⇒ Object
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
|