Class AWS::SimpleDB::AttributeCollection
In: lib/aws/simple_db/attribute_collection.rb
Parent: Object

Methods

[]   []=   add   delete   each   each_value   new   put   replace   set   to_h  

Included Modules

Core::Model Enumerable ConsistentReadOption PutAttributes DeleteAttributes

Attributes

item  [R]  @return [Item] The item this collection belongs to.

Public Class methods

@param [Item] The item to create an attribute collection for. @return [AttributeCollection]

Public Instance methods

Retuns an Attribute with the given name.

@note This does not make a request to SimpleDB.

You can ask for any attribute by name. The attribute may or may not actually exist in SimpleDB.

@example Get an attribute by symbol or string name

  colors = item.attributes[:colors]
  colors = item.attributes['colors']

@param [String, Symbol] attribute_name name of the attribute to get. @return [Item] An item with the given name.

Sets the values for a given attribute.

@example Replace all of the values for the named attribute.

  item.attributes[:color] = 'red', 'blue'

@return This method returns the values passed to it.

Adds values to attributes on the {item}.

The attributes_hash should have attribute names as keys. The hash values should be either strings or arrays of strings.

@example

  item.attributes.add(
    'colors' => ['red', 'blue'],
    'category' => 'clearance')

@param[Hash] attribute_hash @return [nil]

Delete one or more attributes from {item}.

@example Delete a list of attributes by name

  item.attributes.delete 'size', 'color'
  item.attributes.delete %w(size color)

@param attribute_names An array or list of attribute names to delete. @return [nil]

Yields all attribute for this item.

@example Getting all attributes for an item

  item.attributes.each do |attribute|
    puts attribute.name
  end

@yield [attribute] Yields once for every attribute

  on the item.  Yields each attribute only one time, even it
  has multiple values.

@yieldparam [Attribute] attribute @param [Hash] options @option options [Boolean] :consistent_read (false) Causes this

  method to yield the most current attributes for this item.

@return [nil]

Yields all attribute values with their names.

@example Getting all values for an item

  item.attributes.each_value do |name, value|
    puts "#{name}: #{value}"
  end

@yield [attribute_name, attribute_value] Yields once for every

  attribute value on the item.

@yieldparam [String] attribute_name @yieldparam [String] attribute_value @param [Hash] options @option options [Boolean] :consistent_read (false) Causes this

  method to yield the most current attributes for this item.

@return [nil]

Perform a mixed update of added and replace attribues.

  item.attributes.put(
    :add => { 'colors' => %w(green blue), 'tags' => 'cool' }
    :replace => { 'quantity' => 5 }
  )

@param [Hash] options @option options [Hash] :add A hash of attribute names and values to

  append to this item.

@option options [Hash] :replace A hash of attribute names and values to

  add to this item.  If there are currently attributes of the same
  name they will be replaced (not appended to).

@option options [Hash] :replace @return [nil]

Replaces attributes for the {item}.

The attributes_hash should have attribute names as keys. The hash values should be either strings or arrays of strings.

Attributes not named in this hash are left alone. Attributes named in this hash are replaced.

@example

  item.attributes.set(
    'colors' => ['red', 'blue'],
    'category' => 'clearance')

@param [Hash] attributes @return [nil]

set(attributes)

Alias for replace

Returns a hash of all attributes (names and values). The attribute names are strings and the values are arrays of strings.

@example

  item.attributes.to_h
  #=> { 'colors' => ['red','blue'], 'size' => ['large'] }

@param [Hash] options @option options [Boolean] :consistent_read (false) Causes this

  method to return the most current attributes values.

@return [Hash]

[Validate]