class Haora::DateParser

Public Class Methods

parse(date) click to toggle source
# File lib/haora/day.rb, line 98
def self.parse(date)
  begin
    case date
      when /m([0-9]+)/
        Day.today.prev_day($1.to_i)
      when /([0-9]?[0-9]).([0-9]?[0-9]).([0-9]?[0-9]?[0-9][0-9])/
        return Date.new(year($3), mon($2), mday($1))
      when /([0-9]?[0-9]).([0-9]?[0-9]).?/
        return Date.new(year, mon($2), mday($1))
      when /([0-9]?[0-9]).?/
        return Date.new(year, mon, mday($1))
      when /mon?/
        return Day.today.prev_wday(1)
      when /tue?/
        return Day.today.prev_wday(2)
      when /wed?/
        return Day.today.prev_wday(3)
      when /thu?/
        return Day.today.prev_wday(4)
      when /fri?/
        return Day.today.prev_wday(5)
      when /sat?/
        return Day.today.prev_wday(6)
      when /sun?/
        return Day.today.prev_wday(0)
      else
        return Date.today
    end
  rescue => error
    puts error
    raise ArgumentError, 'invalid date'
  end
end

Private Class Methods

mday(mday_param = Day.today.mday) click to toggle source
# File lib/haora/day.rb, line 144
def self.mday(mday_param = Day.today.mday)
  mday_param.to_i
end
mon(mon_param = Day.today.mon) click to toggle source
# File lib/haora/day.rb, line 140
def self.mon(mon_param = Day.today.mon)
  mon_param.to_i
end
year(year_param = Day.today.year) click to toggle source
# File lib/haora/day.rb, line 134
def self.year(year_param = Day.today.year)
  year = year_param.to_i
  year = year + 2000 if year < 100 && year + 2000 <= Date.today.year
  year
end