Parametric.policy(:nullable_integer) do PARAMETRIC_INT_EXP = /^\d+$/.freeze coerce do |value, _key, _context| if value.to_s =~ PARAMETRIC_INT_EXP value.to_i else nil end end meta_data do { type: :integer } end end Parametric.policy(:nullable_date) do PARAMETRIC_DATE_EXP = /^\d{4}(-\d\d(-\d\d(T\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)|Z)?)?)?)?$/i.freeze coerce do |value, _key, _context| if value.to_s =~ PARAMETRIC_DATE_EXP Date.parse(value.to_s) else nil end end meta_data do { type: :date } end end