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