module ActiveRecord::Locking::Optimistic::ClassMethods

def locking_column

The version column used for optimistic locking. Defaults to +lock_version+.
def locking_column
  reset_locking_column
end

def locking_enabled?

+lock_version+).
and the table includes the +locking_column+ column (defaults to
+lock_optimistically+ flag is set to true (which it is, by default)
Is optimistic locking enabled for this table? Returns true if the
def locking_enabled?
  lock_optimistically && columns_hash[locking_column]
end

def quoted_locking_column

Quote the column name used for optimistic locking.
def quoted_locking_column
  connection.quote_column_name(locking_column)
end

def reset_locking_column

Reset the column used for optimistic locking back to the +lock_version+ default.
def reset_locking_column
  set_locking_column DEFAULT_LOCKING_COLUMN
end

def set_locking_column(value = nil, &block)

Set the column to use for optimistic locking. Defaults to +lock_version+.
def set_locking_column(value = nil, &block)
  define_attr_method :locking_column, value, &block
  value
end

def update_counters(id, counters)

updated.
Make sure the lock version column gets updated when counters are
def update_counters(id, counters)
  counters = counters.merge(locking_column => 1) if locking_enabled?
  super
end