module ActiveRepository::Writers::InstanceMethods
Public Instance Methods
attributes=(new_attributes)
click to toggle source
Assigns new_attributes parameter to the attributes in self.
# 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()
click to toggle source
Deletes self from the repository.
Calls superclass method
# 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)
click to toggle source
Updates key attribute with value value.
# 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)
click to toggle source
Updates attributes in self with the attributes in the parameter
# 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