aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/type_caster/map.rb
blob: 4b1941351c2df48c6202c9f7c845039bebd2f67c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module ActiveRecord
  module TypeCaster
    class Map
      def initialize(types)
        @types = types
      end

      def type_cast_for_database(attr_name, value)
        return value if value.is_a?(Arel::Nodes::BindParam)
        type = types.type_for_attribute(attr_name.to_s)
        type.serialize(value)
      end

      protected

      attr_reader :types
    end
  end
end