class AWS::SNS::TopicCollection

Public Instance Methods

[](topic_arn) click to toggle source

@param [String] topic_arn An AWS SNS Topic ARN. It should be

formatted something like:

  arn:aws:sns:us-east-1:123456789012:TopicName

@return [Topic] Returns a topic with the given Topic ARN.

# File lib/aws/sns/topic_collection.rb, line 36
def [] topic_arn
  unless topic_arn =~ %r^arn:aws:sns:/
    raise ArgumentError, "invalid topic arn `#{topic_arn}`"
  end
  Topic.new(topic_arn, :config => config)
end
create(name) click to toggle source

Creates and returns a new SNS Topic. @return [Topic] Returns a new topic with the given name.

# File lib/aws/sns/topic_collection.rb, line 25
def create name
  response = client.create_topic(:name => name)
  Topic.new(response.topic_arn, :config => config)
end
each() { |topic| ... } click to toggle source

Yields once for each topic. @yieldparam [Topic] topic @return [nil]

# File lib/aws/sns/topic_collection.rb, line 46
def each &block

  next_token = nil

  begin
    
    list_options = next_token ? { :next_token => next_token } : {} 
    response = client.list_topics(list_options)

    response.topics.each do |t|
      topic = Topic.new(t.topic_arn, :config => config)
      yield(topic)
    end

  end while(next_token = response.next_token)
  nil

end