Class: AWS::SimpleDB::AttributeCollection
- Inherits:
-
Object
- Object
- AWS::SimpleDB::AttributeCollection
- Includes:
- Core::Model, ConsistentReadOption, DeleteAttributes, PutAttributes, Enumerable
- Defined in:
- lib/aws/simple_db/attribute_collection.rb
Instance Attribute Summary collapse
-
#item ⇒ Item
readonly
The item this collection belongs to.
Attributes included from Core::Model
Instance Method Summary collapse
-
#[](attribute_name) ⇒ Item
Retuns an Attribute with the given name.
-
#[]=(attribute_name, *values) ⇒ Object
Sets the values for a given attribute.
-
#add(attributes) ⇒ nil
Adds values to attributes on the #item.
-
#delete(*args) ⇒ Object
Delete one or more attributes from #item.
-
#each(options = {}) {|attribute| ... } ⇒ nil
Yields all attribute for this item.
-
#each_value(options = {}) {|attribute_name, attribute_value| ... } ⇒ nil
Yields all attribute values with their names.
- #initialize(item, options = {}) ⇒ AttributeCollection constructor
-
#put(options = {}) ⇒ nil
Perform a mixed update of added and replace attribues.
-
#replace(attributes) ⇒ nil
(also: #set)
Replaces attributes for the #item.
-
#to_h(options = {}) ⇒ Hash
Returns a hash of all attributes (names and values).
Methods included from ConsistentReadOption
Methods included from Core::Model
#client, #config_prefix, #inspect
Constructor Details
#initialize(item, options = {}) ⇒ AttributeCollection
26 27 28 29 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 26 def initialize item, = {} @item = item super end |
Instance Attribute Details
#item ⇒ Item (readonly)
Returns The item this collection belongs to.
32 33 34 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 32 def item @item end |
Instance Method Details
#[](attribute_name) ⇒ Item
This does not make a request to SimpleDB.
Retuns an Attribute with the given name.
You can ask for any attribute by name. The attribute may or may not actually exist in SimpleDB.
46 47 48 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 46 def [] attribute_name Attribute.new(item, attribute_name.to_s) end |
#[]=(attribute_name, *values) ⇒ Object
Sets the values for a given attribute.
55 56 57 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 55 def []= attribute_name, *values self[attribute_name].set(*values) end |
#add(attributes) ⇒ nil
154 155 156 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 154 def add attributes do_put(attribute_hashes(attributes, false), attributes) end |
#delete(attributes) ⇒ nil #delete(*attribute_names) ⇒ nil
Delete one or more attributes from #item.
220 221 222 223 224 225 226 227 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 220 def delete *args if args.size == 1 and args.first.kind_of?(Hash) delete_attribute_values(args.first) else delete_named_attributes(*args) end nil end |
#each(options = {}) {|attribute| ... } ⇒ nil
Yields all attribute for this item.
108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 108 def each = {}, &block yielded = {} each_value() do |attribute_name, attribute_value| unless yielded[attribute_name] attribute = self[attribute_name] yield(attribute) yielded[attribute_name] = true end end nil end |
#each_value(options = {}) {|attribute_name, attribute_value| ... } ⇒ nil
Yields all attribute values with their names.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 75 def each_value = {}, &block list = client.get_attributes( :domain_name => item.domain.name, :item_name => item.name, :consistent_read => consistent_read()) list.attributes.each do |attribute| attribute_name = attribute.name attribute_value = attribute.value yield(attribute_name, attribute_value) end nil end |
#put(options = {}) ⇒ nil
Perform a mixed update of added and replace attribues.
item.attributes.put(
:add => { 'colors' => %w(green blue), 'tags' => 'cool' }
:replace => { 'quantity' => 5 }
)
173 174 175 176 177 178 179 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 173 def put = {} add = [:add] || {} replace = [:replace] || {} attributes = attribute_hashes(add, false) attributes += attribute_hashes(replace, true) do_put(attributes, ) end |
#replace(attributes) ⇒ nil Also known as: set
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.
136 137 138 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 136 def replace attributes do_put(attribute_hashes(attributes, true), attributes) end |
#to_h(options = {}) ⇒ Hash
Returns a hash of all attributes (names and values). The attribute names are strings and the values are arrays of strings.
193 194 195 196 197 198 199 200 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 193 def to_h = {} hash = {} each_value() do |attribute_name,attribute_value| hash[attribute_name] ||= [] hash[attribute_name] << attribute_value end hash end |