Class: AWS::SimpleDB::AttributeCollection
- Inherits:
-
Object
- Object
- AWS::SimpleDB::AttributeCollection
- Includes:
- Enumerable
- Defined in:
- lib/aws/simple_db/attribute_collection.rb
Instance Attribute Summary collapse
-
#item ⇒ Item
readonly
The item this collection belongs to.
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) ⇒ nil
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).
Constructor Details
#initialize(item, options = {}) ⇒ AttributeCollection
32 33 34 35 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 32 def initialize item, = {} @item = item super end |
Instance Attribute Details
#item ⇒ Item (readonly)
Returns The item this collection belongs to.
38 39 40 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 38 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.
52 53 54 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 52 def [] attribute_name Attribute.new(item, attribute_name.to_s) end |
#[]=(attribute_name, *values) ⇒ Object
Sets the values for a given attribute.
61 62 63 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 61 def []= attribute_name, *values self[attribute_name].set(*values) end |
#add(attributes) ⇒ nil
160 161 162 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 160 def add attributes do_put(attribute_hashes(attributes, false), attributes) end |
#delete(*args) ⇒ nil
Delete one or more attributes from #item.
216 217 218 219 220 221 222 223 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 216 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.
114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 114 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.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 81 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 }
)
179 180 181 182 183 184 185 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 179 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.
142 143 144 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 142 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.
199 200 201 202 203 204 205 206 |
# File 'lib/aws/simple_db/attribute_collection.rb', line 199 def to_h = {} hash = {} each_value() do |attribute_name,attribute_value| hash[attribute_name] ||= [] hash[attribute_name] << attribute_value end hash end |