Sha256: d2b8e5a80242ce3a562cf98afa9dfcbf7598bc3497ce01dd452b5e734ba6e58a

Contents?: true

Size: 771 Bytes

Versions: 37

Compression:

Stored size: 771 Bytes

Contents

# frozen_string_literal: true

module ActiveModel
  module Type
    class Float < Value # :nodoc:
      include Helpers::Numeric

      def type
        :float
      end

      def type_cast_for_schema(value)
        return "::Float::NAN" if value.try(:nan?)
        case value
        when ::Float::INFINITY then "::Float::INFINITY"
        when -::Float::INFINITY then "-::Float::INFINITY"
        else super
        end
      end

      alias serialize cast

      private

        def cast_value(value)
          case value
          when ::Float then value
          when "Infinity" then ::Float::INFINITY
          when "-Infinity" then -::Float::INFINITY
          when "NaN" then ::Float::NAN
          else value.to_f
          end
        end
    end
  end
end

Version data entries

37 entries across 37 versions & 5 rubygems

Version Path
activemodel-5.2.8.1 lib/active_model/type/float.rb
activemodel-5.2.8 lib/active_model/type/float.rb
activemodel-5.2.7.1 lib/active_model/type/float.rb
activemodel-5.2.7 lib/active_model/type/float.rb
activemodel-5.2.6.3 lib/active_model/type/float.rb
activemodel-5.2.6.2 lib/active_model/type/float.rb
activemodel-5.2.6.1 lib/active_model/type/float.rb
activemodel-5.2.6 lib/active_model/type/float.rb
activemodel-5.2.4.6 lib/active_model/type/float.rb
activemodel-5.2.5 lib/active_model/type/float.rb
activemodel-5.2.4.5 lib/active_model/type/float.rb
activemodel-5.2.4.4 lib/active_model/type/float.rb
activemodel-5.2.4.3 lib/active_model/type/float.rb
activemodel-5.2.4.2 lib/active_model/type/float.rb
activemodel-5.2.4.1 lib/active_model/type/float.rb
activemodel-5.2.4 lib/active_model/type/float.rb
activemodel-5.2.4.rc1 lib/active_model/type/float.rb
spiral_form-0.1.1 vendor/bundle/gems/activemodel-5.2.3/lib/active_model/type/float.rb
spiral_form-0.1.0 vendor/bundle/gems/activemodel-5.2.3/lib/active_model/type/float.rb
ric-0.13.0 vendor/bundle/ruby/2.5.0/gems/activemodel-5.2.3/lib/active_model/type/float.rb