module Mingo::Persistence

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/mingo/persistence.rb, line 16
def initialize(*args)
  @destroyed = false
  super
end

Public Instance Methods

destroy() click to toggle source
# File lib/mingo/persistence.rb, line 46
def destroy
  self.class.collection.remove('_id' => self.id)
  @destroyed = true
  self.freeze
end
destroyed?() click to toggle source
# File lib/mingo/persistence.rb, line 52
def destroyed?
  @destroyed
end
persisted?() click to toggle source
# File lib/mingo/persistence.rb, line 21
def persisted?
  !!id
end
reload() click to toggle source
# File lib/mingo/persistence.rb, line 40
def reload
  doc = self.class.first(id, :transformer => nil)
  replace doc
  self
end
save(options = {}) click to toggle source
# File lib/mingo/persistence.rb, line 25
def save(options = {})
  if persisted?
    hash = values_for_update
    unless hash.empty?
      update(hash, options)
    end
  else
    self['_id'] = self.class.collection.insert(self.to_hash, options)
  end
end
update(doc, options = {}) click to toggle source
# File lib/mingo/persistence.rb, line 36
def update(doc, options = {})
  self.class.collection.update({'_id' => self.id}, doc, options)
end

Private Instance Methods

values_for_update() click to toggle source
# File lib/mingo/persistence.rb, line 58
def values_for_update
  self.to_hash
end