diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-02-03 14:34:53 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-02-07 13:51:53 -0800 |
commit | d592ea3b02c7e0952b87b876ad92bd1b453543c8 (patch) | |
tree | ff7bde9d731bb174e367357b8d1b7d667c1b2de7 /activerecord/lib/active_record/attribute_methods/serialization.rb | |
parent | dd1eb78d767d3272f951a240a171b841a5ebd356 (diff) | |
download | rails-d592ea3b02c7e0952b87b876ad92bd1b453543c8.tar.gz rails-d592ea3b02c7e0952b87b876ad92bd1b453543c8.tar.bz2 rails-d592ea3b02c7e0952b87b876ad92bd1b453543c8.zip |
wrap and cache columns for typecasting
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/serialization.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/serialization.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/serialization.rb b/activerecord/lib/active_record/attribute_methods/serialization.rb index 38e7bf77ef..3bc749dabf 100644 --- a/activerecord/lib/active_record/attribute_methods/serialization.rb +++ b/activerecord/lib/active_record/attribute_methods/serialization.rb @@ -10,6 +10,16 @@ module ActiveRecord self.serialized_attributes = {} end + class Type # :nodoc: + def initialize(column) + @column = column + end + + def type_cast(value) + value.unserialized_value + end + end + class Attribute < Struct.new(:coder, :value, :state) def unserialized_value state == :serialized ? unserialize : value |