lib/morpheus/mixins/persistence.rb in morpheus-0.4.0 vs lib/morpheus/mixins/persistence.rb in morpheus-0.5.0
- old
+ new
@@ -1,45 +1,47 @@
module Morpheus
- module Persistence
+ module Mixins
+ module Persistence
- def self.included(base)
- base.extend(ClassMethods)
- end
+ def self.included(base)
+ base.extend(ClassMethods)
+ end
- def save(with_validations = true)
- attributes_for_save = { self.class.attributes_root => attributes_without_basic_attributes.reject { |k,v| v.nil? } }
+ def save(with_validations = true)
+ attributes_for_save = { self.class.attributes_root => attributes_without_basic_attributes.reject { |k,v| v.nil? } }
- if with_validations
- return false unless valid?
+ if with_validations
+ return false unless valid?
+ end
+
+ if new_record?
+ built_object = self.class.post(*UrlBuilder.save(self.class, nil, attributes_for_save))
+ else
+ built_object = self.class.put(*UrlBuilder.save(self.class, id, attributes_for_save))
+ end
+ built_object.instance_variables.each do |iv|
+ self.instance_variable_set(iv, built_object.instance_variable_get(iv))
+ end
+ @valid
end
- if new_record?
- built_object = self.class.post(*UrlBuilder.save(self.class, nil, attributes_for_save))
- else
- built_object = self.class.put(*UrlBuilder.save(self.class, id, attributes_for_save))
+ def update_attributes(new_attributes)
+ merge_attributes(new_attributes)
+ save
end
- built_object.instance_variables.each do |iv|
- self.instance_variable_set(iv, built_object.instance_variable_get(iv))
+
+ def destroy
+ self.class.delete(UrlBuilder.destroy(self.class, id))
end
- @valid
- end
- def update_attributes(new_attributes)
- merge_attributes(new_attributes)
- save
- end
+ module ClassMethods
- def destroy
- self.class.delete(UrlBuilder.destroy(self.class, id))
- end
+ def create(new_attributes = {})
+ new(new_attributes).tap { |new_instance| new_instance.save }
+ end
+ alias :create! :create
- module ClassMethods
-
- def create(new_attributes = {})
- new(new_attributes).tap { |new_instance| new_instance.save }
end
- alias :create! :create
end
-
end
end