From b993a5ae2fb4048810a4514b33bc8ebbddf8bd25 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jan 2009 17:03:24 -0800 Subject: [PATCH] Refactored the date checks into a separate methods. #1920 --- app/models/rate.rb | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/models/rate.rb b/app/models/rate.rb index 425ec46..74bd96e 100644 --- a/app/models/rate.rb +++ b/app/models/rate.rb @@ -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