changed strict_time_type_cast to use validation parse method to unify and allow pluggable parsers

This commit is contained in:
Adam Meehan 2008-07-01 11:33:20 +10:00
parent d035de1d7c
commit 67183eb69f

View File

@ -31,13 +31,12 @@ module ValidatesTimeliness
# Does strict time type cast checking for Rails 2.1 timezone handling # Does strict time type cast checking for Rails 2.1 timezone handling
def strict_time_type_cast(time) def strict_time_type_cast(time)
unless time.acts_like?(:time) unless time.acts_like?(:time)
time.to_date rescue time = nil time = self.class.timeliness_date_time_parse(time)
time = time && defined?(ActiveSupport::TimeWithZone) ? Time.zone.parse(time) : time.to_time rescue nil
end end
time_in_time_zone(time) time_in_time_zone(time)
end end
# Handles timezone shift for Rails 2.1 or just returns time for old versions # Handles timezone shift if Rails 2.1
def time_in_time_zone(time) def time_in_time_zone(time)
time.respond_to?(:in_time_zone) ? time.in_time_zone : time time.respond_to?(:in_time_zone) ? time.in_time_zone : time
end end