class ActiveModel::Type::Float

Active Model Float Type

Attribute type for floating point numeric values. It is registered under the :float key.

class BagOfCoffee
  include ActiveModel::Attributes

  attribute :weight, :float
end

Values are cast using their to_f method, except for the following strings:

Public Instance Methods

type() click to toggle source
# File lib/active_model/type/float.rb, line 39
def type
  :float
end
type_cast_for_schema(value) click to toggle source
Calls superclass method
# File lib/active_model/type/float.rb, line 43
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

Private Instance Methods

cast_value(value) click to toggle source
# File lib/active_model/type/float.rb, line 53
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