mirror of
https://github.com/github/rails.git
synced 2026-01-09 14:48:01 -05:00
Deprecate set_locking_column in favour of self.locking_column=
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
* `set_inheritance_column`
|
||||
* `set_sequence_name`
|
||||
* `set_primary_key`
|
||||
* `set_locking_column`
|
||||
|
||||
Use an assignment method instead. For example, instead of `set_table_name`, use `self.table_name=`:
|
||||
|
||||
|
||||
@@ -51,10 +51,6 @@ module ActiveRecord
|
||||
included do
|
||||
cattr_accessor :lock_optimistically, :instance_writer => false
|
||||
self.lock_optimistically = true
|
||||
|
||||
class << self
|
||||
alias_method :locking_column=, :set_locking_column
|
||||
end
|
||||
end
|
||||
|
||||
def locking_enabled? #:nodoc:
|
||||
@@ -148,15 +144,24 @@ module ActiveRecord
|
||||
lock_optimistically && columns_hash[locking_column]
|
||||
end
|
||||
|
||||
def locking_column=(value)
|
||||
@original_locking_column = @locking_column if defined?(@locking_column)
|
||||
@locking_column = value.to_s
|
||||
end
|
||||
|
||||
# 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
|
||||
deprecated_property_setter :locking_column, value, block
|
||||
end
|
||||
|
||||
# The version column used for optimistic locking. Defaults to +lock_version+.
|
||||
def locking_column
|
||||
reset_locking_column
|
||||
reset_locking_column unless defined?(@locking_column)
|
||||
@locking_column
|
||||
end
|
||||
|
||||
def original_locking_column #:nodoc:
|
||||
deprecated_original_property_getter :locking_column
|
||||
end
|
||||
|
||||
# Quote the column name used for optimistic locking.
|
||||
@@ -166,7 +171,7 @@ module ActiveRecord
|
||||
|
||||
# Reset the column used for optimistic locking back to the +lock_version+ default.
|
||||
def reset_locking_column
|
||||
set_locking_column DEFAULT_LOCKING_COLUMN
|
||||
self.locking_column = DEFAULT_LOCKING_COLUMN
|
||||
end
|
||||
|
||||
# Make sure the lock version column gets updated when counters are
|
||||
|
||||
@@ -11,7 +11,7 @@ class LockWithoutDefault < ActiveRecord::Base; end
|
||||
|
||||
class LockWithCustomColumnWithoutDefault < ActiveRecord::Base
|
||||
self.table_name = :lock_without_defaults_cust
|
||||
set_locking_column :custom_lock_version
|
||||
self.locking_column = :custom_lock_version
|
||||
end
|
||||
|
||||
class ReadonlyFirstNamePerson < Person
|
||||
@@ -226,6 +226,46 @@ class OptimisticLockingTest < ActiveRecord::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
class SetLockingColumnTest < ActiveRecord::TestCase
|
||||
def test_set_set_locking_column_with_value
|
||||
k = Class.new( ActiveRecord::Base )
|
||||
k.locking_column = "foo"
|
||||
assert_equal "foo", k.locking_column
|
||||
|
||||
assert_deprecated do
|
||||
k.set_locking_column "bar"
|
||||
end
|
||||
assert_equal "bar", k.locking_column
|
||||
end
|
||||
|
||||
def test_set_locking_column_with_block
|
||||
k = Class.new( ActiveRecord::Base )
|
||||
k.locking_column = 'foo'
|
||||
|
||||
assert_deprecated do
|
||||
k.set_locking_column { "lock_" + original_locking_column }
|
||||
end
|
||||
assert_equal "lock_foo", k.locking_column
|
||||
end
|
||||
|
||||
def test_original_locking_column
|
||||
k = Class.new(ActiveRecord::Base)
|
||||
k.locking_column = "bar"
|
||||
|
||||
assert_deprecated do
|
||||
assert_equal ActiveRecord::Locking::Optimistic::ClassMethods::DEFAULT_LOCKING_COLUMN, k.original_locking_column
|
||||
end
|
||||
|
||||
k = Class.new(ActiveRecord::Base)
|
||||
k.locking_column = "omg"
|
||||
k.locking_column = "wtf"
|
||||
|
||||
assert_deprecated do
|
||||
assert_equal "omg", k.original_locking_column
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class OptimisticLockingWithSchemaChangeTest < ActiveRecord::TestCase
|
||||
fixtures :people, :legacy_things, :references
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
class LegacyThing < ActiveRecord::Base
|
||||
set_locking_column :version
|
||||
self.locking_column = :version
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user