module MongoModel::DocumentExtensions::OptimisticLocking
Public Instance Methods
locking_enabled?()
click to toggle source
# File lib/mongomodel/document/optimistic_locking.rb, line 21 def locking_enabled? self.class.locking_enabled? end
Private Instance Methods
increment_lock_version()
click to toggle source
# File lib/mongomodel/document/optimistic_locking.rb, line 26 def increment_lock_version self._lock_version += 1 end
save_to_collection()
click to toggle source
Calls superclass method
# File lib/mongomodel/document/optimistic_locking.rb, line 30 def save_to_collection if locking_enabled? && _lock_version > 1 begin collection.update({ '_id' => id.to_mongo, '_lock_version' => _lock_version-1 }, to_mongo) success = database.get_last_error['updatedExisting'] self._lock_version -= 1 unless success success rescue Mongo::OperationFailure => e false end else super end end