Module: ActiveRepository::Writers::InstanceMethods
- Included in:
- Base
- Defined in:
- lib/active_repository/writers.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#attributes=(new_attributes) ⇒ Object
Assigns new_attributes parameter to the attributes in self.
-
#delete ⇒ Object
Deletes self from the repository.
-
#update_attribute(key, value) ⇒ Object
Updates #key attribute with #value value.
-
#update_attributes(attributes) ⇒ Object
Updates attributes in self with the attributes in the parameter.
Instance Method Details
#attributes=(new_attributes) ⇒ Object
Assigns new_attributes parameter to the attributes in self.
29 30 31 32 33 |
# File 'lib/active_repository/writers.rb', line 29 def attributes=(new_attributes) new_attributes.each do |k,v| self.send("#{k.to_s == '_id' ? 'id' : k.to_s}=", v) end end |
#delete ⇒ Object
Deletes self from the repository.
36 37 38 39 40 41 42 43 |
# File 'lib/active_repository/writers.rb', line 36 def delete klass = self.class if klass.persistence_class == klass super else PersistenceAdapter.delete(klass, self.id) end end |
#update_attribute(key, value) ⇒ Object
Updates #key attribute with #value value.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/active_repository/writers.rb', line 46 def update_attribute(key, value) ret = true key = key.to_sym if self.class == persistence_class object = self.class.where(:id => self.id).first_or_initialize self.send("#{key}=", value) ret = self.save else ret, object = PersistenceAdapter.update_attribute(self.class, self.id, key, value) self.attributes = object.attributes end reload ret end |
#update_attributes(attributes) ⇒ Object
Updates attributes in self with the attributes in the parameter
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/active_repository/writers.rb', line 68 def update_attributes(attributes) attributes = attributes.symbolize_keys if attributes.respond_to?(:symbolize_keys) klass = self.class model_class = persistence_class if klass == model_class attributes.each do |key, value| self.send("#{key}=", value) unless key == :id end save else attributes = self.attributes.merge(attributes) ret, object = PersistenceAdapter.update_attributes(self.class, self.id, attributes) self.attributes = object.attributes end reload ret end |