class ActiveModel::Type::Float

:nodoc:

def cast_value(value)

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

def type

def type
  :float
end

def type_cast_for_schema(value)

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