Module: Dynamoid::Fields
- Extended by:
- ActiveSupport::Concern
- Included in:
- Components
- Defined in:
- lib/dynamoid/fields.rb
Overview
All fields on a Dynamoid::Document must be explicitly defined -- if you have fields in the database that are not specified with field, then they will be ignored.
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary (collapse)
-
- (Object) attributes
(also: #raw_attributes)
You can access the attributes of an object directly on its attributes method, which is by default an empty hash.
Instance Method Summary (collapse)
-
- (Object) read_attribute(name)
(also: #[])
Read an attribute from an object.
-
- (Object) update_attribute(attribute, value)
Update a single attribute, saving the object afterwards.
-
- (Object) update_attributes(attributes)
Updates multiple attibutes at once, saving the object once the updates are complete.
-
- (Object) write_attribute(name, value)
(also: #[]=)
Write an attribute on the object.
Instance Attribute Details
- (Object) attributes Also known as: raw_attributes
You can access the attributes of an object directly on its attributes method, which is by default an empty hash.
48 49 50 |
# File 'lib/dynamoid/fields.rb', line 48 def attributes @attributes end |
Instance Method Details
- (Object) read_attribute(name) Also known as: []
Read an attribute from an object.
77 78 79 |
# File 'lib/dynamoid/fields.rb', line 77 def read_attribute(name) attributes[name.to_sym] end |
- (Object) update_attribute(attribute, value)
Update a single attribute, saving the object afterwards.
98 99 100 101 |
# File 'lib/dynamoid/fields.rb', line 98 def update_attribute(attribute, value) write_attribute(attribute, value) save end |
- (Object) update_attributes(attributes)
Updates multiple attibutes at once, saving the object once the updates are complete.
87 88 89 90 |
# File 'lib/dynamoid/fields.rb', line 87 def update_attributes(attributes) attributes.each {|attribute, value| self.write_attribute(attribute, value)} save end |
- (Object) write_attribute(name, value) Also known as: []=
Write an attribute on the object. Also marks the previous value as dirty.
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/dynamoid/fields.rb', line 57 def write_attribute(name, value) if (size = value.to_s.size) > MAX_ITEM_SIZE Dynamoid.logger.warn "DynamoDB can't store items larger than #{MAX_ITEM_SIZE} and the #{name} field has a length of #{size}." end attribute_will_change!(name) unless self.read_attribute(name) == value if association = @associations[name] association.reset end attributes[name.to_sym] = value end |