Keep the code related to serialization in Serialization module.

We should not need any `serialized_attributes` checks outside `ActiveRecord::AttributeMethods::Serialization` module.
This commit is contained in:
Nikita Afanasenko 2012-11-10 01:45:43 +04:00
parent 90a1721c31
commit 410e887a44
2 changed files with 13 additions and 9 deletions

View File

@ -369,14 +369,10 @@ module ActiveRecord
end
def typecasted_attribute_value(name)
if self.class.serialized_attributes.include?(name)
@attributes[name].serialized_value
else
# FIXME: we need @attributes to be used consistently.
# If the values stored in @attributes were already typecasted, this code
# could be simplified
read_attribute(name)
end
# FIXME: we need @attributes to be used consistently.
# If the values stored in @attributes were already typecasted, this code
# could be simplified
read_attribute(name)
end
end
end

View File

@ -5,7 +5,7 @@ module ActiveRecord
included do
# Returns a hash of all the attributes that have been specified for
# serialization as keys and their class restriction as values.
# serialization as keys and their class restriction as values.
class_attribute :serialized_attributes, instance_accessor: false
self.serialized_attributes = {}
end
@ -129,6 +129,14 @@ module ActiveRecord
end
end
end
def typecasted_attribute_value(name)
if self.class.serialized_attributes.include?(name)
@attributes[name].serialized_value
else
super
end
end
end
end
end