Class: AWS::SNS::TopicCollection

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

Instance Attribute Summary

Attributes included from Core::Model

#config

Instance Method Summary collapse

Methods included from Core::Model

#client, #config_prefix, #initialize, #inspect

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.


36
37
38
39
40
41
# File 'lib/aws/sns/topic_collection.rb', line 36

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.


25
26
27
28
# 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| ... } ⇒ nil

Yields once for each topic.

Yield Parameters:

Returns:

  • (nil)

46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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.data[:next_token])
  nil

end