value.rb 936 字节
Newer Older
1 2 3 4
module ActiveRecord
  module ConnectionAdapters
    module Type
      class Value # :nodoc:
S
Sean Griffin 已提交
5
        attr_reader :precision, :scale, :limit
S
Sean Griffin 已提交
6 7

        def initialize(options = {})
S
Sean Griffin 已提交
8
          options.assert_valid_keys(:precision, :scale, :limit)
S
Sean Griffin 已提交
9
          @precision = options[:precision]
S
Sean Griffin 已提交
10
          @scale = options[:scale]
S
Sean Griffin 已提交
11
          @limit = options[:limit]
S
Sean Griffin 已提交
12
        end
13

S
Sean Griffin 已提交
14
        def type; end
Y
Yves Senn 已提交
15

16 17 18 19
        def type_cast(value)
          cast_value(value) unless value.nil?
        end

20 21 22 23
        def type_cast_for_write(value)
          value
        end

24 25 26 27
        def type_cast_for_database(value)
          type_cast_for_write(value)
        end

28 29 30 31 32 33 34 35 36 37 38 39
        def text?
          false
        end

        def number?
          false
        end

        def binary?
          false
        end

40 41 42 43
        def klass
          ::Object
        end

44 45 46 47 48
        private

        def cast_value(value)
          value
        end
49 50 51 52
      end
    end
  end
end