ignore restriction value errors

This commit is contained in:
Adam Meehan
2010-08-01 23:26:23 +10:00
parent 0720abeb0e
commit 6acf61aa88
3 changed files with 36 additions and 3 deletions

View File

@@ -18,6 +18,9 @@ module ValidatesTimeliness
mattr_accessor :dummy_date_for_time_type
@@dummy_date_for_time_type = [ 2000, 1, 1 ]
# Ignore errors when restriction options are evaluated
mattr_accessor :ignore_restriction_errors
@@ignore_restriction_errors = false
end
require 'validates_timeliness/conversion'

View File

@@ -39,9 +39,15 @@ module ValidatesTimeliness
value = type_cast(value)
(RESTRICTIONS.keys & options.keys).each do |restriction|
restriction_value = type_cast(evaluate_option_value(options[restriction], record))
unless value.send(RESTRICTIONS[restriction], restriction_value)
return record.errors.add(attr_name, restriction, :restriction => restriction_value)
begin
restriction_value = type_cast(evaluate_option_value(options[restriction], record))
unless value.send(RESTRICTIONS[restriction], restriction_value)
return record.errors.add(attr_name, restriction, :restriction => restriction_value)
end
rescue => e
unless ValidatesTimeliness.ignore_restriction_errors
record.errors[attr_name] = "Error occurred validating #{attr_name} for #{restriction.inspect} restriction:\n#{e.message}"
end
end
end
end