diff --git a/lib/active_model/dates.rb b/lib/active_model/dates.rb new file mode 100644 index 000000000..a519e3840 --- /dev/null +++ b/lib/active_model/dates.rb @@ -0,0 +1,25 @@ +module ActiveModel::Dates + + def parse_date(field, attrs) + day, month, year = attrs["#{field}(1i)"], + attrs["#{field}(2i)"], + attrs["#{field}(3i)"] + + return nil unless day.present? && month.present? && year.present? + Date.new(day.to_i, month.to_i, year.to_i) + end + + def remove_date(field, attrs) + attrs.except("#{field}(1i)", "#{field}(2i)", "#{field}(3i)") + end + + def date_to_string(date) + date.strftime("%d-%m-%Y") + end + + def string_to_date(value) + day, month, year = value.split("-") + Date.new(year.to_i, month.to_i, day.to_i) + end + +end \ No newline at end of file