class TimeKeeper::Parser::Base

Constants

TIME_FORMAT_REGEX

Attributes

hour[RW]
min[RW]
time_str[RW]

Public Class Methods

build(time_in_str) click to toggle source
# File lib/time_keeper/parser/base.rb, line 19
def self.build(time_in_str)
  if self.meridian_format?(time_in_str)
    TimeKeeper::Parser::Meridian.new(time_in_str)
  else
    TimeKeeper::Parser::Military.new(time_in_str)
  end
end
meridian_format?(time_in_str) click to toggle source
# File lib/time_keeper/parser/base.rb, line 31
def self.meridian_format?(time_in_str)
  time_in_str.downcase =~ /(am|pm)/
end
new(time_str) click to toggle source
# File lib/time_keeper/parser/base.rb, line 14
def initialize(time_str)
  @time_str = time_str
  raise "#{time_str} is not a valid time" unless self.valid?
end

Public Instance Methods

parse() click to toggle source
# File lib/time_keeper/parser/base.rb, line 27
def parse
  raise NotImplementedError
end

Private Instance Methods

extract_hour() click to toggle source
# File lib/time_keeper/parser/base.rb, line 41
def extract_hour
  raise NotImplementedError
end
extract_min(min_of_day) click to toggle source
# File lib/time_keeper/parser/base.rb, line 45
def extract_min(min_of_day)
  @min = min_of_day.blank? ? 0 : min_of_day[1..-1].strip.to_i
end
time_is_valid() click to toggle source
# File lib/time_keeper/parser/base.rb, line 37
def time_is_valid
  raise NotImplementedError
end