Module: MongoMapper::Plugins::EmbeddedDocument::InstanceMethods

Defined in:
lib/mongo_mapper/plugins/embedded_document.rb

Instance Method Summary collapse

Instance Method Details

#_root_documentObject



49
50
51
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 49

def _root_document
  @_root_document ||= _parent_document.try(:_root_document)
end

#destroyed?Boolean

Returns:



26
27
28
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 26

def destroyed?
  !!_root_document.try(:destroyed?)
end

#new?Boolean

Returns:



22
23
24
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 22

def new?
  _root_document.try(:new?) || @_new
end

#persist(options = {}) ⇒ Object



43
44
45
46
47
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 43

def persist(options={})
  @_new = false
  clear_changes if respond_to?(:clear_changes)
  save_to_collection(options)
end

#save(options = {}) ⇒ Object



30
31
32
33
34
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 30

def save(options={})
  _root_document.try(:save, options).tap do |result|
    persist(options) if result
  end
end

#save!(options = {}) ⇒ Object



36
37
38
39
40
41
# File 'lib/mongo_mapper/plugins/embedded_document.rb', line 36

def save!(options={})
  valid? || raise(DocumentNotValid.new(self))
  _root_document.try(:save!, options).tap do |result|
    persist(options) if result
  end
end