lib/eco/api/common/people/default_parsers/numeric_parser.rb in eco-helpers-2.6.4 vs lib/eco/api/common/people/default_parsers/numeric_parser.rb in eco-helpers-2.7.0

- old
+ new

@@ -1,18 +1,31 @@ class Eco::API::Common::People::DefaultParsers::NumericParser < Eco::API::Common::Loaders::Parser attribute :number - def parser(value, deps) - value.is_a?(Array) ? value.map { |v| parse_number(v) } : parse_number(value) + def parser(value, _deps) + parse_number(value) end - def serializer(value, deps) - value.is_a?(Array) ? value.map { |v| v.to_s } : value.to_s + def serializer(value, _deps) + value.is_a?(Array) ? value.map(&:to_s) : value.to_s end private def parse_number(value) - value.to_s.strip.empty? ? nil : (value.to_f rescue nil) + return value.map {|val| parse_number(val)}.compact if value.is_a?(Enumerable) + + return nil if value.nil? + value = value.to_s.strip + return nil if value.empty? + return nil unless number?(value) + value.to_f + rescue ArgumentError, TypeError + nil end + def number?(value) + true if Float(value) + rescue ArgumentError, TypeError + false + end end