lib/ripple/embedded_document/persistence.rb in ripple-1.0.0.beta vs lib/ripple/embedded_document/persistence.rb in ripple-1.0.0.beta2

- old
+ new

@@ -22,56 +22,54 @@ def embedded_in(parent) define_method(parent) { @_parent_document } end end - module InstanceMethods - # The parent document to this embedded document. This may be a - # {Ripple::Document} or another {Ripple::EmbeddedDocument}. - attr_accessor :_parent_document - - # Whether the root document is unsaved. - def new? - if _root_document - _root_document.new? - else - true - end + # The parent document to this embedded document. This may be a + # {Ripple::Document} or another {Ripple::EmbeddedDocument}. + attr_accessor :_parent_document + + # Whether the root document is unsaved. + def new? + if _root_document + _root_document.new? + else + true end - - # Sets this embedded documents attributes and saves the root document. - def update_attributes(attrs) - self.attributes = attrs - save - end - - # Updates this embedded document's attribute and saves the - # root document, skipping validations. - def update_attribute(attribute, value) - send("#{attribute}=", value) - save(:validate => false) - end - - # Saves this embedded document by delegating to the root document. - def save(*args) - if _root_document - run_save_callbacks do - _root_document.save(*args) - end - else - raise NoRootDocument.new(self, :save) + end + + # Sets this embedded documents attributes and saves the root document. + def update_attributes(attrs) + self.attributes = attrs + save + end + + # Updates this embedded document's attribute and saves the + # root document, skipping validations. + def update_attribute(attribute, value) + send("#{attribute}=", value) + save(:validate => false) + end + + # Saves this embedded document by delegating to the root document. + def save(*args) + if _root_document + run_save_callbacks do + _root_document.save(*args) end + else + raise NoRootDocument.new(self, :save) end - - # @private - def attributes_for_persistence - raw_attributes.merge("_type" => self.class.name) - end - - # The root {Ripple::Document} to which this embedded document belongs. - def _root_document - @_parent_document.try(:_root_document) - end + end + + # @private + def attributes_for_persistence + raw_attributes.merge("_type" => self.class.name) + end + + # The root {Ripple::Document} to which this embedded document belongs. + def _root_document + @_parent_document.try(:_root_document) end end end end