Refactored the date checks into a separate methods. #1920

This commit is contained in:
Eric Davis
2009-01-16 17:03:24 -08:00
parent 2950051383
commit b993a5ae2f
+13 -7
View File
@@ -31,13 +31,7 @@ class Rate < ActiveRecord::Base
# Check input since it's a "public" API
raise Rate::InvalidParameterException.new("user must be a User instance") unless user.is_a?(User)
raise Rate::InvalidParameterException.new("project must be a Project instance") unless project.nil? || project.is_a?(Project)
raise Rate::InvalidParameterException.new("date must be a valid Date string (e.g. YYYY-MM-DD)") unless date.is_a?(String)
begin
Date.parse(date)
rescue ArgumentError
raise Rate::InvalidParameterException.new("date must be a valid Date string (e.g. YYYY-MM-DD)")
end
Rate.check_date_string(date)
rate = self.for_user_project_and_date(user, project, date)
@@ -58,4 +52,16 @@ class Rate < ActiveRecord::Base
])
end
# Checks a date string to make sure it is in format of +YYYY-MM-DD+, throwing
# a Rate::InvalidParameterException otherwise
def self.check_date_string(date)
raise Rate::InvalidParameterException.new("date must be a valid Date string (e.g. YYYY-MM-DD)") unless date.is_a?(String)
begin
Date.parse(date)
rescue ArgumentError
raise Rate::InvalidParameterException.new("date must be a valid Date string (e.g. YYYY-MM-DD)")
end
end
end