method

initialize_type_map

Importance_0
v6.1.7.7 - Show latest stable - 0 notes - Class: ActiveRecord::ConnectionAdapters::AbstractAdapter
initialize_type_map(m = type_map) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 609
        def initialize_type_map(m = type_map)
          register_class_with_limit m, %(boolean),       Type::Boolean
          register_class_with_limit m, %(char),          Type::String
          register_class_with_limit m, %(binary),        Type::Binary
          register_class_with_limit m, %(text),          Type::Text
          register_class_with_precision m, %(date),      Type::Date
          register_class_with_precision m, %(time),      Type::Time
          register_class_with_precision m, %(datetime),  Type::DateTime
          register_class_with_limit m, %(float),         Type::Float
          register_class_with_limit m, %(int),           Type::Integer

          m.alias_type %(blob),      "binary"
          m.alias_type %(clob),      "text"
          m.alias_type %(timestamp), "datetime"
          m.alias_type %(numeric),   "decimal"
          m.alias_type %(number),    "decimal"
          m.alias_type %(double),    "float"

          m.register_type %(^json), Type::Json.new

          m.register_type(%(decimal)) do |sql_type|
            scale = extract_scale(sql_type)
            precision = extract_precision(sql_type)

            if scale == 0
              # FIXME: Remove this class as well
              Type::DecimalWithoutScale.new(precision: precision)
            else
              Type::Decimal.new(precision: precision, scale: scale)
            end
          end
        end
Register or log in to add new notes.