Merge pull request #39560 from kamipo/casecmp
Case insensitive mutation tracking
This commit is contained in:
commit
40877d823d
|
@ -9,10 +9,15 @@ module ActiveRecord
|
|||
:macaddr
|
||||
end
|
||||
|
||||
private
|
||||
def cast_value(value)
|
||||
value.to_s.downcase
|
||||
end
|
||||
def changed?(old_value, new_value, _new_value_before_type_cast)
|
||||
old_value.class != new_value.class ||
|
||||
new_value && old_value.casecmp(new_value) != 0
|
||||
end
|
||||
|
||||
def changed_in_place?(raw_old_value, new_value)
|
||||
raw_old_value.class != new_value.class ||
|
||||
new_value && raw_old_value.casecmp(new_value) != 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,15 +7,25 @@ module ActiveRecord
|
|||
class Uuid < Type::Value # :nodoc:
|
||||
ACCEPTABLE_UUID = %r{\A(\{)?([a-fA-F0-9]{4}-?){8}(?(1)\}|)\z}
|
||||
|
||||
alias_method :serialize, :deserialize
|
||||
alias :serialize :deserialize
|
||||
|
||||
def type
|
||||
:uuid
|
||||
end
|
||||
|
||||
def changed?(old_value, new_value, _new_value_before_type_cast)
|
||||
old_value.class != new_value.class ||
|
||||
new_value && old_value.casecmp(new_value) != 0
|
||||
end
|
||||
|
||||
def changed_in_place?(raw_old_value, new_value)
|
||||
raw_old_value.class != new_value.class ||
|
||||
new_value && raw_old_value.casecmp(new_value) != 0
|
||||
end
|
||||
|
||||
private
|
||||
def cast_value(value)
|
||||
casted = value.to_s.downcase
|
||||
casted = value.to_s
|
||||
casted if casted.match?(ACCEPTABLE_UUID)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue