From 3e14c3017c037d93e562c3697cf50224dced7b50 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 5 Jan 2013 16:09:15 +0000 Subject: Adds a custom validator for dates (#12736). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11124 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/core_ext/active_record.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib/redmine/core_ext') diff --git a/lib/redmine/core_ext/active_record.rb b/lib/redmine/core_ext/active_record.rb index b18f95cd9..69bf76adc 100644 --- a/lib/redmine/core_ext/active_record.rb +++ b/lib/redmine/core_ext/active_record.rb @@ -38,3 +38,14 @@ module ActiveRecord end end end + +class DateValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + before_type_cast = record.attributes_before_type_cast[attribute.to_s] + if before_type_cast.is_a?(String) && before_type_cast.present? + unless before_type_cast =~ /\A\d{4}-\d{2}-\d{2}\z/ && value + record.errors.add attribute, :not_a_date + end + end + end +end -- cgit v1.2.3