lib/propono/components/queue_subscription.rb in propono-0.11.1 vs lib/propono/components/queue_subscription.rb in propono-1.0.0.rc1
- old
+ new
@@ -2,32 +2,29 @@
class QueueSubscription
include Sns
include Sqs
- attr_reader :topic_arn, :queue
+ attr_reader :topic_arn, :queue_name, :queue
- def self.create(topic_id)
- new(topic_id).tap do |subscription|
+ def self.create(topic_id, options = {})
+ new(topic_id, options).tap do |subscription|
subscription.create
end
end
- def initialize(topic_id)
+ def initialize(topic_id, options = {})
@topic_id = topic_id
@suffixed_topic_id = "#{topic_id}#{Propono.config.queue_suffix}"
+ @queue_name = "#{Propono.config.application_name.gsub(" ", "_")}-#{@suffixed_topic_id}#{options[:queue_name_suffix]}"
end
def create
raise ProponoError.new("topic_id is nil") unless @topic_id
@topic = TopicCreator.find_or_create(@suffixed_topic_id)
@queue = QueueCreator.find_or_create(queue_name)
sns.subscribe(@topic.arn, @queue.arn, 'sqs')
sqs.set_queue_attributes(@queue.url, "Policy", generate_policy)
- end
-
- def queue_name
- @queue_name ||= "#{Propono.config.application_name.gsub(" ", "_")}-#{@suffixed_topic_id}"
end
private
def generate_policy