module Ohm::Versioned

Public Class Methods

included(model) click to toggle source
# File lib/ohm/versioned.rb, line 3
def self.included(model)
  model.attribute :_version, ->(x) { x.to_i }
end

Public Instance Methods

save() click to toggle source
Calls superclass method
# File lib/ohm/versioned.rb, line 7
def save
  current_version = new? ? 0 : redis.call("HGET", key, :_version).to_i

  if current_version != _version
    raise Ohm::VersionConflict.new(attributes)
  end

  self._version = current_version + 1

  super
end