lib/acfs/resource/attributes/float.rb in acfs-1.0.0.dev.1.b305 vs lib/acfs/resource/attributes/float.rb in acfs-1.0.0
- old
+ new
@@ -1,25 +1,31 @@
module Acfs::Resource::Attributes
-
# @api public
#
# Float attribute type. Use it in your model as an attribute type:
#
# @example
# class User < Acfs::Resource
# attribute :name, :float
# end
#
class Float < Base
-
# @api public
#
# Cast given object to float.
#
- # @param [Object] obj Object to cast.
+ # @param [Object] value Object to cast.
# @return [Float] Casted object as float.
#
- def cast_type(obj)
- Float obj
+ def cast_value(value)
+ return 0.0 if value.blank?
+
+ case value
+ when ::Float then value
+ when "Infinity" then ::Float::INFINITY
+ when "-Infinity" then -::Float::INFINITY
+ when "NaN" then ::Float::NAN
+ else Float(value)
+ end
end
end
end