class Eco::API::Common::People::DefaultParsers::DateParser < Eco::API::Common::Loaders::Parser attribute :date def parser(value, deps) value.is_a?(Array) ? value.map { |v| parse_date(v) } : parse_date(value) end def serializer(value, deps) value.is_a?(Array) ? value.map { |d| d && d.strftime('%Y-%m-%d') } : value && value.strftime('%Y-%m-%d') end private def parse_date(value) begin (value.to_s.empty?) ? nil : Date.parse(value) rescue nil end end end