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