An Enumerable collection representing all your domains in SimpleDB.
Use a DomainCollection to create, get and list domains.
@example Creating a domain in SimpleDB
sdb = SimpleDB.new domain = sdb.domains.create('mydomain')
@example Getting a domain with indifferent access
domain = sdb.domains[:mydomain] domain = sdb.domains['mydomain']
@example Enumerating domains
sdb.domains.each do |domain| puts domain.name end
Returns a domain object with the given name.
@note This does not attempt to create the domain if it does not
already exist in SimpleDB. Use {#create} to add a domain to SDB.
@param [String] domain_name The name of the domain to return. @return [Domain] Returns the domain with the given name.
# File lib/aws/simple_db/domain_collection.rb, line 63 def [] domain_name domain_named(domain_name) end
Creates a domain in SimpleDB and returns a domain object.
@note This operation might take 10 or more seconds to complete. @note Creating a domain in SimpleDB is an idempotent operation;
running it multiple times using the same domain name will not result in an error.
@note You can create up to 100 domains per account. @param [String] domain_name @return [Domain] Returns a new domain with the given name.
# File lib/aws/simple_db/domain_collection.rb, line 51 def create(domain_name) client.create_domain(:domain_name => domain_name) domain_named(domain_name) end
@note Normally your account has a limit of 100 SimpleDB domains. You can request more here @yield [domain] Yields once for every domain in your account. @yieldparam [Domain] domain @param [Hash] options @option options [Integer] :limit (nil) The maximum number of
domains to yield.
@option options [Integer] :batch_size (100) The number of domains to
fetch each request to SimpleDB. Maximum is 100.
@return [nil]
# File lib/aws/simple_db/domain_collection.rb, line 76 def each options = {}, &block total_limit = options[:limit] batch_size = options[:batch_size] || 100 received = 0 next_token = nil begin limit = total_limit ? [total_limit - received, batch_size].min : batch_size list_options = { :limit => limit } list_options[:next_token] = next_token if next_token list = client.list_domains(list_options) next_token = list.next_token received += list.domain_names.length list.domain_names.each do |name| yield(domain_named(name)) end end while next_token and (total_limit.nil? or received < total_limit) nil end
@return [Domain] Returns a domain with the given name. @private
# File lib/aws/simple_db/domain_collection.rb, line 107 def domain_named name Domain.new(name.to_s, :config => config) end