Class: AWS::SNS::TopicCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/aws/sns/topic_collection.rb

Instance Method Summary collapse

Instance Method Details

#[](topic_arn) ⇒ Topic

Returns a topic with the given Topic ARN.

Parameters:

  • topic_arn (String)

    An AWS SNS Topic ARN. It should be formatted something like:

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

Returns:

  • (Topic)

    Returns a topic with the given Topic ARN.



39
40
41
42
43
44
# File 'lib/aws/sns/topic_collection.rb', line 39

def [] topic_arn
  unless topic_arn =~ /^arn:aws:sns:/
    raise ArgumentError, "invalid topic arn `#{topic_arn}`"
  end
  Topic.new(topic_arn, :config => config)
end

#create(name) ⇒ Topic

Creates and returns a new SNS Topic.

Returns:

  • (Topic)

    Returns a new topic with the given name.



28
29
30
31
# File 'lib/aws/sns/topic_collection.rb', line 28

def create name
  response = client.create_topic(:name => name)
  Topic.new(response.topic_arn, :config => config)
end

#each {|topic| ... } ⇒ nil

Yields once for each topic.

Yield Parameters:

Returns:

  • (nil)


49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/aws/sns/topic_collection.rb', line 49

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