Class: MySQLYearweek

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_yearweek.rb

Constant Summary collapse

MIN_ALLOWED_DATE =
Date.new(1584, 1, 1).freeze
MAX_TESTED_DATE =
Date.new(4000, 12, 31).freeze

Class Method Summary collapse

Class Method Details

.mode_seven(date) ⇒ Object



118
119
120
# File 'lib/mysql_yearweek.rb', line 118

def self.mode_seven(date)
  mode_five(date)
end

.yearweek(date, mode = 4) ⇒ Object

Raises:

  • (TypeError)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mysql_yearweek.rb', line 9

def self.yearweek(date, mode=4)
  raise TypeError unless date.is_a?(Date)
  if (date < MIN_ALLOWED_DATE)
    raise ArgumentError, "Dates before #{MIN_ALLOWED_DATE} are not allowed"
  end

  case mode
  when 0
    return mode_zero(date)
  when 1
    return mode_one(date)
  when 2
    return mode_two(date)
  when 3
    return mode_three(date)
  when 4
    return mode_four(date)
  when 5
    return mode_five(date)
  when 6
    return mode_six(date)
  when 7
    return mode_seven(date)
  else
    raise ArgumentError, 'Valid modes are from 0 to 7'
  end
end