From dff7900c4a502e1ef0d64456ea89df952cf5f0c0 Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Fri, 2 May 2008 17:14:48 +1000 Subject: [PATCH] check for Time object before validating --- lib/validates_timeliness/validations.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/validates_timeliness/validations.rb b/lib/validates_timeliness/validations.rb index f324359..d28f9ee 100644 --- a/lib/validates_timeliness/validations.rb +++ b/lib/validates_timeliness/validations.rb @@ -20,14 +20,18 @@ module ValidatesTimeliness next if raw_value.is_nil? and options[:allow_nil] begin - time_array = ParseDate.parsedate(raw_value) + if raw_value.acts_like?(:time) + time = raw_value + else + time_array = ParseDate.parsedate(raw_value) - # checks if date is valid and enforces number of days in a month unlike Time - date = Date.new(*time_array[0..2]) + # checks if date is valid and enforces number of days in a month unlike Time + date = Date.new(*time_array[0..2]) + + # checks if time is valid as it will accept bad date values + time = Time.mktime(*time_array) + end - # checks if time is valid as it will accept bad date values - time = Time.mktime(*time_array) - restriction_methods.each do |option, method| if restriction = options[option] restriction = restriction.to_time