module PgDice::DateHelper

Helper used to manipulate date objects

Public Instance Methods

pad_date(numbers) click to toggle source
# File lib/pgdice/date_helper.rb, line 6
def pad_date(numbers)
  return numbers if numbers.size == 8

  case numbers.size
  when 6
    return numbers + '01'
  when 4
    return numbers + '0101'
  else
    raise ArgumentError, "Invalid date. Cannot parse date from #{numbers}"
  end
end
safe_date_builder(table_name) click to toggle source
# File lib/pgdice/date_helper.rb, line 32
def safe_date_builder(table_name)
  matches = table_name.match(/\d+/)
  raise ArgumentError, "Invalid date. Cannot parse date from #{table_name}" unless matches

  Date.parse(pad_date(matches[0]))
end
truncate_date(date, period) click to toggle source
# File lib/pgdice/date_helper.rb, line 19
def truncate_date(date, period)
  case period
  when 'year'
    Date.parse("#{date.year}0101")
  when 'month'
    Date.parse("#{date.strftime('%Y%m')}01")
  when 'day'
    date
  else
    raise ArgumentError, "Invalid date. Cannot parse date from #{date}"
  end
end