class TimeKeeper::Parser::Meridian
Constants
- TIME_FORMAT_REGEX
Public Instance Methods
parse()
click to toggle source
# File lib/time_keeper/parser/meridian.rb, line 8 def parse matched_data = @time_str.match(TimeKeeper::Parser::Meridian::TIME_FORMAT_REGEX) extract_hour(matched_data[1], matched_data[8]) extract_min(matched_data[4]) self end
Private Instance Methods
extract_hour(hour_of_day, meridian_status)
click to toggle source
# File lib/time_keeper/parser/meridian.rb, line 24 def extract_hour(hour_of_day, meridian_status) hour_of_day = hour_of_day.strip.to_i @hour = 0 if hour_of_day == 12 && meridian_status == "am" @hour = 0 elsif hour_of_day == 12 && meridian_status == "pm" @hour = 12 elsif hour_of_day > 0 && hour_of_day <= 12 && meridian_status == "am" @hour = hour_of_day elsif hour_of_day > 0 && hour_of_day <= 12 && meridian_status == "pm" @hour = hour_of_day + 12 end @hour end
time_is_valid()
click to toggle source
# File lib/time_keeper/parser/meridian.rb, line 17 def time_is_valid matched_data = @time_str.match(TimeKeeper::Parser::Meridian::TIME_FORMAT_REGEX) valid = ((1..12) === matched_data[1].to_i && (0...60) === matched_data[4].gsub(':', '').to_i) self.errors.add(:base, "Either hour or min is not valid") unless valid valid end