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) end def serializer(value, deps) value.is_a?(Array) ? value.map { |v| v.to_s } : value.to_s end private def parse_number(value) value.to_s.strip.empty? ? nil : (value.to_f rescue nil) end end