serialized.rb 523 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
module ActiveRecord
  module Type
    class Serialized < SimpleDelegator # :nodoc:
      attr_reader :subtype

      def initialize(subtype)
        @subtype = subtype
        super
      end

      def type_cast(value)
        if value.respond_to?(:unserialized_value)
          value.unserialized_value(super(value.value))
        else
          super
        end
      end

      def serialized?
        true
      end

      def accessor
        ActiveRecord::Store::IndifferentHashAccessor
      end
    end
  end
end