holidays 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +18 -9
  4. data/definitions/README.md +174 -0
  5. data/definitions/ar.yaml +37 -27
  6. data/definitions/au.yaml +73 -13
  7. data/definitions/{be.yaml → be_fr.yaml} +15 -15
  8. data/definitions/be_nl.yaml +65 -0
  9. data/definitions/cz.yaml +7 -4
  10. data/definitions/de.yaml +80 -10
  11. data/definitions/index.yaml +3 -2
  12. data/definitions/jp.yaml +20 -3
  13. data/definitions/nl.yaml +2 -1
  14. data/definitions/nz.yaml +0 -3
  15. data/lib/generated_definitions/MANIFEST +2 -0
  16. data/lib/generated_definitions/REGIONS.rb +1 -1
  17. data/lib/generated_definitions/ar.rb +9 -6
  18. data/lib/generated_definitions/au.rb +33 -9
  19. data/lib/generated_definitions/be_fr.rb +40 -0
  20. data/lib/generated_definitions/be_nl.rb +40 -0
  21. data/lib/generated_definitions/de.rb +14 -5
  22. data/lib/generated_definitions/europe.rb +37 -16
  23. data/lib/generated_definitions/jp.rb +3 -2
  24. data/lib/generated_definitions/nl.rb +1 -1
  25. data/lib/generated_definitions/nz.rb +0 -1
  26. data/lib/holidays.rb +12 -0
  27. data/lib/holidays/date_calculator/easter.rb +9 -9
  28. data/lib/holidays/date_calculator/weekend_modifier.rb +25 -4
  29. data/lib/holidays/definition/context/generator.rb +1 -1
  30. data/lib/holidays/definition/repository/holidays_by_month.rb +1 -1
  31. data/lib/holidays/option/context/parse_options.rb +1 -1
  32. data/lib/holidays/version.rb +1 -1
  33. data/test/defs/test_defs_ar.rb +18 -14
  34. data/test/defs/test_defs_au.rb +29 -2
  35. data/test/defs/{test_defs_be.rb → test_defs_be_fr.rb} +5 -4
  36. data/test/defs/test_defs_be_nl.rb +26 -0
  37. data/test/defs/test_defs_de.rb +25 -4
  38. data/test/defs/test_defs_europe.rb +44 -6
  39. data/test/defs/test_defs_jp.rb +8 -0
  40. data/test/holidays/date_calculator/test_weekend_modifier.rb +10 -0
  41. data/test/test_all_regions.rb +1 -1
  42. metadata +11 -6
  43. data/definitions/SYNTAX.rdoc +0 -111
@@ -1,4 +1,4 @@
1
- # Belgium holiday definitions for the Ruby Holiday gem.
1
+ # Belgium holiday definitions for the Ruby Holiday gem in French.
2
2
  #
3
3
  # Updated: 2012-06-20.
4
4
  # Sources:
@@ -7,46 +7,46 @@
7
7
  months:
8
8
  0:
9
9
  - name: Pâques
10
- regions: [be]
10
+ regions: [be_fr]
11
11
  function: easter(year)
12
12
  - name: Lundi de Pâques
13
- regions: [be]
13
+ regions: [be_fr]
14
14
  function: easter(year)+1
15
15
  - name: Ascension
16
- regions: [be]
16
+ regions: [be_fr]
17
17
  function: easter(year)+39
18
18
  - name: Pentecôte
19
- regions: [be]
19
+ regions: [be_fr]
20
20
  function: easter(year)+49
21
21
  - name: Lundi de Pentecôte
22
- regions: [be]
22
+ regions: [be_fr]
23
23
  function: easter(year)+50
24
24
  1:
25
25
  - name: Jour de l'an
26
- regions: [be]
26
+ regions: [be_fr]
27
27
  mday: 1
28
28
  5:
29
29
  - name: Fête du travail
30
- regions: [be]
30
+ regions: [be_fr]
31
31
  mday: 1
32
32
  7:
33
33
  - name: Fête nationale
34
- regions: [be]
34
+ regions: [be_fr]
35
35
  mday: 21
36
36
  8:
37
37
  - name: Assomption
38
- regions: [be]
38
+ regions: [be_fr]
39
39
  mday: 15
40
40
  11:
41
41
  - name: Toussaint
42
- regions: [be]
42
+ regions: [be_fr]
43
43
  mday: 1
44
44
  - name: Armistice 1918
45
- regions: [be]
45
+ regions: [be_fr]
46
46
  mday: 11
47
47
  12:
48
48
  - name: Noël
49
- regions: [be]
49
+ regions: [be_fr]
50
50
  mday: 25
51
51
  tests: |
52
52
  {Date.civil(2007,1,1) => 'Jour de l\'an',
@@ -61,5 +61,5 @@ tests: |
61
61
  Date.civil(2007,11,1) => 'Toussaint',
62
62
  Date.civil(2007,11,11) => 'Armistice 1918',
63
63
  Date.civil(2007,12,25) => 'Noël'}.each do |date, name|
64
- assert_equal name, (Holidays.on(date, :be, :informal)[0] || {})[:name]
65
- end
64
+ assert_equal name, (Holidays.on(date, :be_fr, :informal)[0] || {})[:name]
65
+ end
@@ -0,0 +1,65 @@
1
+ # Belgium holiday definitions for the Ruby Holiday gem. In Dutch.
2
+ #
3
+ # Updated: 2016-02-17.
4
+ # Sources:
5
+ # - http://en.wikipedia.org/wiki/Public_holidays_in_Belgium
6
+ ---
7
+ months:
8
+ 0:
9
+ - name: Pasen
10
+ regions: [be_nl]
11
+ function: easter(year)
12
+ - name: Paasmaandag
13
+ regions: [be_nl]
14
+ function: easter(year)+1
15
+ - name: O.H. Hemelvaart
16
+ regions: [be_nl]
17
+ function: easter(year)+39
18
+ - name: Pinksteren
19
+ regions: [be_nl]
20
+ function: easter(year)+49
21
+ - name: Pinkstermaandag
22
+ regions: [be_nl]
23
+ function: easter(year)+50
24
+ 1:
25
+ - name: Nieuwjaar
26
+ regions: [be_nl]
27
+ mday: 1
28
+ 5:
29
+ - name: Feest van de Arbeid
30
+ regions: [be_nl]
31
+ mday: 1
32
+ 7:
33
+ - name: Nationale Feestdag
34
+ regions: [be_nl]
35
+ mday: 21
36
+ 8:
37
+ - name: O.L.V. Hemelvaart
38
+ regions: [be_nl]
39
+ mday: 15
40
+ 11:
41
+ - name: Allerheiligen
42
+ regions: [be_nl]
43
+ mday: 1
44
+ - name: Wapenstilstand 1918
45
+ regions: [be_nl]
46
+ mday: 11
47
+ 12:
48
+ - name: Kerstmis
49
+ regions: [be_nl]
50
+ mday: 25
51
+ tests: |
52
+ {Date.civil(2007,1,1) => 'Nieuwjaar',
53
+ Date.civil(2007,4,8) => 'Pasen',
54
+ Date.civil(2007,4,9) => 'Paasmaandag',
55
+ Date.civil(2007,5,1) => 'Feest van de Arbeid',
56
+ Date.civil(2007,5,17) => 'O.H. Hemelvaart',
57
+ Date.civil(2007,5,27) => 'Pinksteren',
58
+ Date.civil(2007,5,28) => 'Pinkstermaandag',
59
+ Date.civil(2007,7,21) => 'Nationale Feestdag',
60
+ Date.civil(2007,8,15) => 'O.L.V. Hemelvaart',
61
+ Date.civil(2007,11,1) => 'Allerheiligen',
62
+ Date.civil(2007,11,11) => 'Wapenstilstand 1918',
63
+ Date.civil(2007,12,25) => 'Kerstmis'}.each do |date, name|
64
+ assert_equal name, (Holidays.on(date, :be_nl, :informal)[0] || {})[:name]
65
+ end
data/definitions/cz.yaml CHANGED
@@ -1,12 +1,15 @@
1
1
  # Czech holiday definitions for the Ruby Holiday gem.
2
2
  #
3
- # Updated: 2010-01-20.
3
+ # Updated: 2016-04-20.
4
4
  # Sources:
5
5
  # - http://cs.wikipedia.org/wiki/%C4%8Cesk%C3%BD_st%C3%A1tn%C3%AD_sv%C3%A1tek
6
6
  # - http://www.mpsv.cz/cs/74
7
- ---
7
+ ---
8
8
  months:
9
- 0:
9
+ 0:
10
+ - name: Velký pátek
11
+ regions: [cz]
12
+ function: easter(year)-2
10
13
  - name: Velikonoční pondělí
11
14
  regions: [cz]
12
15
  function: easter(year)+1
@@ -52,6 +55,7 @@ months:
52
55
  mday: 26
53
56
  tests: |
54
57
  {Date.civil(2010,1,1) => 'Den obnovy samostatného českého státu',
58
+ Date.civil(2016,3,25) => 'Velký pátek',
55
59
  Date.civil(2010,4,5) => 'Velikonoční pondělí',
56
60
  Date.civil(2010,5,1) => 'Svátek práce',
57
61
  Date.civil(2010,5,8) => 'Den vítězství',
@@ -65,4 +69,3 @@ tests: |
65
69
  Date.civil(2010,12,26) => '2. svátek vánoční'}.each do |date, name|
66
70
  assert_equal name, (Holidays.on(date, :cz, :informal)[0] || {})[:name]
67
71
  end
68
-
data/definitions/de.yaml CHANGED
@@ -1,28 +1,59 @@
1
1
  # German holiday definitions for the Ruby Holiday gem.
2
2
  #
3
- # Updated: 2009-11-05.
3
+ # Updated: 2016-03-16
4
+ #
5
+ # Changes 2016-03-16:
6
+ # - Add Ostersonntag, Pfingstsonntag, Heilig Abend and Silvester as informal holidays.
7
+ # - Add Fronleichnam for de_sn_aux, de_th_aux
8
+ # - Add Reformationstag as informal holiday for de_bw (it is school free)
9
+ # - Add Reformationstag for 2017 (500 years)
10
+ # - Correction in test for :de_by_aux
11
+ #
4
12
  # Sources:
5
13
  # - http://en.wikipedia.org/wiki/Holidays_in_Germany
6
14
  # - http://www.timeanddate.com/calendar/index.html?country=8
7
15
  # - http://www.germany.info/relaunch/welcome/travel/holidays.html
8
- ---
16
+ ---
9
17
  months:
10
18
  0:
11
19
  - name: Karfreitag
12
20
  regions: [de]
13
21
  function: easter(year)-2
22
+ - name: Ostersonntag
23
+ regions: [de]
24
+ function: easter(year)
25
+ type: informal
14
26
  - name: Ostermontag
15
27
  regions: [de]
16
28
  function: easter(year)+1
17
29
  - name: Christi Himmelfahrt
18
30
  regions: [de]
19
31
  function: easter(year)+39
32
+ - name: Pfingstsonntag
33
+ regions: [de]
34
+ function: easter(year)+49
35
+ type: informal
20
36
  - name: Pfingstmontag
21
37
  regions: [de]
22
38
  function: easter(year)+50
23
39
  - name: Fronleichnam
24
40
  regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl]
25
41
  function: easter(year)+60
42
+ - name: Fronleichnam
43
+ regions: [de_sn_aux, de_th_aux]
44
+ function: easter(year)+60
45
+ - name: Weiberfastnacht
46
+ regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn ]
47
+ function: easter(year)-52
48
+ type: informal
49
+ - name: Rosenmontag
50
+ regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn]
51
+ function: easter(year)-48
52
+ type: informal
53
+ - name: Aschermittwoch
54
+ regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn]
55
+ function: easter(year)-46
56
+ type: informal
26
57
  1:
27
58
  - name: Neujahrstag
28
59
  regions: [de]
@@ -48,7 +79,16 @@ months:
48
79
  - name: Reformationstag
49
80
  regions: [de_bb, de_mv, de_sn, de_st, de_th]
50
81
  mday: 31
51
- 11:
82
+ - name: Reformationstag
83
+ regions: [de_bw]
84
+ mday: 31
85
+ type: informal
86
+ - name: Reformationstag
87
+ regions: [de]
88
+ mday: 31
89
+ year_ranges:
90
+ - limited: [2017]
91
+ 11:
52
92
  - name: Allerheiligen
53
93
  regions: [de_bw, de_by, de_nw, de_rp, de_sl]
54
94
  mday: 1
@@ -56,12 +96,20 @@ months:
56
96
  regions: [de_sn]
57
97
  function: de_buss_und_bettag(year)
58
98
  12:
99
+ - name: Heilig Abend
100
+ regions: [de]
101
+ mday: 24
102
+ type: informal
59
103
  - name: 1. Weihnachtstag
60
104
  regions: [de]
61
105
  mday: 25
62
106
  - name: 2. Weihnachtstag
63
107
  regions: [de]
64
108
  mday: 26
109
+ - name: Silvester
110
+ regions: [de]
111
+ mday: 31
112
+ type: informal
65
113
  methods:
66
114
  de_buss_und_bettag: |
67
115
  # Germany: Wednesday before November 23
@@ -74,19 +122,24 @@ methods:
74
122
  end
75
123
  date
76
124
  end
125
+
77
126
  tests: |
78
- {Date.civil(2009,1,1) => 'Neujahrstag',
127
+ {Date.civil(2009,1,1) => 'Neujahrstag',
79
128
  Date.civil(2009,4,10) => 'Karfreitag',
129
+ Date.civil(2009,4,12) => 'Ostersonntag',
80
130
  Date.civil(2009,4,13) => 'Ostermontag',
81
131
  Date.civil(2009,5,1) => 'Tag der Arbeit',
82
132
  Date.civil(2009,5,21) => 'Christi Himmelfahrt',
133
+ Date.civil(2009,5,31) => 'Pfingstsonntag',
83
134
  Date.civil(2009,6,1) => 'Pfingstmontag',
84
135
  Date.civil(2009,10,3) => 'Tag der Deutschen Einheit',
136
+ Date.civil(2009,12,24) => 'Heilig Abend',
85
137
  Date.civil(2009,12,25) => '1. Weihnachtstag',
86
- Date.civil(2009,12,26) => '2. Weihnachtstag'}.each do |date, name|
87
- assert_equal name, (Holidays.on(date, :de, :informal)[0] || {})[:name]
138
+ Date.civil(2009,12,26) => '2. Weihnachtstag',
139
+ Date.civil(2009,12,31) => 'Silvester'}.each do |date, name|
140
+ assert_equal name, (Holidays.on(date, :de, :informal)[0] || {})[:name], "Failed on '#{name}' for date '#{date}'"
88
141
  end
89
-
142
+
90
143
  [:de_bw, :de_by, :de_st, :de_].each do |r|
91
144
  assert_equal 'Heilige Drei Könige', Holidays.on(Date.civil(2009,1,6), r)[0][:name]
92
145
  end
@@ -94,21 +147,31 @@ tests: |
94
147
  [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_].each do |r|
95
148
  assert_equal 'Fronleichnam', Holidays.on(Date.civil(2009,6,11), r)[0][:name]
96
149
  end
97
-
150
+
98
151
  [:de_by, :de_sl, :de_].each do |r|
99
152
  assert_equal 'Mariä Himmelfahrt', Holidays.on(Date.civil(2009,8,15), r)[0][:name]
100
153
  end
101
-
154
+
102
155
  [:de_bb, :de_mv, :de_sn, :de_st, :de_th, :de_].each do |r|
103
156
  assert_equal 'Reformationstag', Holidays.on(Date.civil(2009,10,31), r)[0][:name]
104
157
  end
105
158
 
159
+ # Free day in schools
160
+ [:de_bw].each do |r|
161
+ assert_equal 'Reformationstag', Holidays.on(Date.civil(2009,10,31), r, :informal)[0][:name]
162
+ end
163
+
164
+ # 500 years reformation in 2017
165
+ assert_equal 'Reformationstag', Holidays.on(Date.civil(2017,10,31), :de)[0][:name]
166
+ assert_equal [], Holidays.on(Date.civil(2016,10,31), :de), "Reformationstag is not a holiday in 2016 in whole Germany"
167
+ assert_equal [], Holidays.on(Date.civil(2018,10,31), :de), "Reformationstag is not a holiday in 2018 in whole Germany"
168
+
106
169
  [:de_bw, :de_by, :de_nw, :de_rp, :de_sl, :de_].each do |r|
107
170
  assert_equal 'Allerheiligen', Holidays.on(Date.civil(2009,11,1), r)[0][:name]
108
171
  end
109
172
 
110
173
  [:de_by_aux].each do |r|
111
- assert_equal 'Friedensfest', Date.civil(2015,8,8).holidays(r)[0][:name]
174
+ assert_equal 'Friedensfest', Holidays.on(Date.civil(2015,8,8),r)[0][:name]
112
175
  end
113
176
 
114
177
  [:de,
@@ -126,3 +189,10 @@ tests: |
126
189
  assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2005,11,16), :de_sn)[0][:name]
127
190
  assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2006,11,22), :de_sn)[0][:name]
128
191
  assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2009,11,18), :de_sn)[0][:name]
192
+
193
+ # Carnival
194
+ [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn].each do |r|
195
+ assert_equal 'Weiberfastnacht', Holidays.on(Date.civil(2016,2,4),r,:informal)[0][:name]
196
+ assert_equal 'Rosenmontag', Holidays.on(Date.civil(2016,2,8),r,:informal)[0][:name]
197
+ assert_equal 'Aschermittwoch', Holidays.on(Date.civil(2016,2,10),r,:informal)[0][:name]
198
+ end
@@ -4,7 +4,8 @@ defs:
4
4
  AR: ['ar.yaml']
5
5
  AT: ['at.yaml']
6
6
  AU: ['au.yaml']
7
- BE: ['be.yaml']
7
+ BE_FR: ['be_fr.yaml']
8
+ BE_NL: ['be_nl.yaml']
8
9
  BR: ['br.yaml']
9
10
  BG: ['bg.yaml']
10
11
  CA: ['ca.yaml', 'north_america_informal.yaml']
@@ -47,7 +48,7 @@ defs:
47
48
  ZA: ['za.yaml']
48
49
  North_America: ['ca.yaml', 'mx.yaml', 'us.yaml', 'north_america_informal.yaml']
49
50
  Scandinavia: ['dk.yaml', 'is.yaml', 'no.yaml', 'se.yaml', 'fi.yaml']
50
- Europe: ['at.yaml', 'be.yaml', 'ch.yaml', 'cz.yaml', 'dk.yaml', 'de.yaml', 'el.yaml', 'es.yaml', 'fr.yaml', 'gb.yaml', 'hr.yaml', 'hu.yaml', 'ie.yaml', 'is.yaml', 'it.yaml', 'li.yaml', 'lt.yaml', 'nl.yaml', 'no.yaml', 'pl.yaml', 'pt.yaml', 'ro.yaml', 'sk.yaml', 'si.yaml', 'bg.yaml']
51
+ Europe: ['at.yaml', 'be_fr.yaml', 'be_nl.yaml', 'ch.yaml', 'cz.yaml', 'dk.yaml', 'de.yaml', 'el.yaml', 'es.yaml', 'fr.yaml', 'gb.yaml', 'hr.yaml', 'hu.yaml', 'ie.yaml', 'is.yaml', 'it.yaml', 'li.yaml', 'lt.yaml', 'nl.yaml', 'no.yaml', 'pl.yaml', 'pt.yaml', 'ro.yaml', 'sk.yaml', 'si.yaml', 'bg.yaml']
51
52
  JP: ['jp.yaml']
52
53
  VE: ['ve.yaml']
53
54
  VI: ['vi.yaml']
data/definitions/jp.yaml CHANGED
@@ -68,11 +68,20 @@ months:
68
68
  7:
69
69
  - name: 海の日
70
70
  regions: [jp]
71
- wday: 1
72
- week: 3
71
+ mday: 20
72
+ year_ranges:
73
+ - between: 1996..2002
73
74
  - name: 振替休日
74
75
  regions: [jp]
75
- function: jp_substitute_holiday(year, 7, Holidays.calculate_day_of_month(year, 7, 3, 1))
76
+ function: jp_substitute_holiday(year, 7, 20)
77
+ year_ranges:
78
+ - between: 1996..2002
79
+ - name: 海の日
80
+ regions: [jp]
81
+ wday: 1
82
+ week: 3
83
+ year_ranges:
84
+ - after: 2003
76
85
  8:
77
86
  - name: 山の日
78
87
  regions: [jp]
@@ -240,6 +249,14 @@ tests: |
240
249
  assert_equal '国民の休日', Holidays.on(date, :jp)[0][:name]
241
250
  end
242
251
 
252
+ # marine day since 1996
253
+ [Date.civil(1996, 7, 20), Date.civil(2002, 7, 20), Date.civil(2003, 7, 21),
254
+ Date.civil(2004, 7, 19), Date.civil(2005, 7, 18), Date.civil(2006, 7, 17),
255
+ Date.civil(2007, 7, 16), Date.civil(2009, 7, 20), Date.civil(2013, 7, 15),
256
+ Date.civil(2014, 7, 21)].each do |date|
257
+ assert_equal '海の日', Holidays.on(date, :jp)[0][:name]
258
+ end
259
+
243
260
  # mountain holiday start since 2016
244
261
  [Date.civil(2016,8,11), Date.civil(2017,8,11),Date.civil(2018,8,11),
245
262
  Date.civil(2019,8,11), Date.civil(2020,8,11),Date.civil(2021,8,11),
data/definitions/nl.yaml CHANGED
@@ -10,6 +10,7 @@ months:
10
10
  - name: Goede Vrijdag
11
11
  regions: [nl]
12
12
  function: easter(year)-2
13
+ type: informal
13
14
  - name: Pasen
14
15
  regions: [nl]
15
16
  function: easter(year)
@@ -65,4 +66,4 @@ tests: |
65
66
  Date.civil(2008,12,25) => 'Kerstmis',
66
67
  Date.civil(2008,12,26) => 'Kerstmis'}.each do |date, name|
67
68
  assert_equal name, (Holidays.on(date, :nl, :informal)[0] || {})[:name]
68
- end
69
+ end
data/definitions/nz.yaml CHANGED
@@ -8,9 +8,6 @@ months:
8
8
  - name: Good Friday
9
9
  regions: [nz]
10
10
  function: easter(year)-2
11
- - name: Easter Saturday
12
- regions: [nz]
13
- function: easter(year)-1
14
11
  - name: Easter Monday
15
12
  regions: [nz]
16
13
  function: easter(year)+1
@@ -6,6 +6,8 @@ The following definition files are included in this installation:
6
6
  * generated_definitions/at
7
7
  * generated_definitions/au
8
8
  * generated_definitions/be
9
+ * generated_definitions/be_fr
10
+ * generated_definitions/be_nl
9
11
  * generated_definitions/bg
10
12
  * generated_definitions/br
11
13
  * generated_definitions/ca
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_tas_south, :au_wa, :au_tas, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_ns, :ca_pe, :ca_bc, :ca_nf, :ca_nt, :ca_nu, :ca_nb, :ca_yk, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :cr, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_st, :de_by_aux, :de_bb, :de_mv, :de_sn, :de_th, :ecb_target, :el, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federal_reserve, :fedex, :fi, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :hr, :hu, :ie, :is, :it, :li, :lt, :ma, :mx, :mx_pue, :us, :ca, :nerc, :nl, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :ph, :pl, :pt, :ro, :se, :us, :us_dc, :us_ca, :ca, :united_nations, :ups, :za, :ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_ns, :ca_pe, :ca_bc, :ca_nf, :ca_nt, :ca_nu, :ca_nb, :ca_yk, :mx, :mx_pue, :us, :us_dc, :us_ca, :dk, :is, :no, :se, :fi, :at, :be, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_st, :de_by_aux, :de_bb, :de_mv, :de_sn, :de_th, :el, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :hr, :hu, :ie, :is, :it, :li, :lt, :nl, :no, :pl, :pt, :ro, :sk, :si, :bg_en, :bg_bg, :jp, :ve, :vi, :sk, :si, :sg]
3
+ REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_tas_south, :au_wa, :au_tas, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be_fr, :be_nl, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_ns, :ca_pe, :ca_bc, :ca_nf, :ca_nt, :ca_nu, :ca_nb, :ca_yk, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :cr, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_aux, :de_th_aux, :de_sn, :de_st, :de_by_aux, :de_bb, :de_mv, :de_th, :ecb_target, :el, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federal_reserve, :fedex, :fi, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :hr, :hu, :ie, :is, :it, :li, :lt, :ma, :mx, :mx_pue, :us, :ca, :nerc, :nl, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :ph, :pl, :pt, :ro, :se, :us, :us_dc, :us_ca, :ca, :united_nations, :ups, :za, :ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_ns, :ca_pe, :ca_bc, :ca_nf, :ca_nt, :ca_nu, :ca_nb, :ca_yk, :mx, :mx_pue, :us, :us_dc, :us_ca, :dk, :is, :no, :se, :fi, :at, :be_fr, :be_nl, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_aux, :de_th_aux, :de_sn, :de_st, :de_by_aux, :de_bb, :de_mv, :de_th, :el, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :hr, :hu, :ie, :is, :it, :li, :lt, :nl, :no, :pl, :pt, :ro, :sk, :si, :bg_en, :bg_bg, :jp, :ve, :vi, :sk, :si, :sg]
4
4
  end
@@ -18,19 +18,22 @@ module Holidays
18
18
 
19
19
  def self.holidays_by_month
20
20
  {
21
- 0 => [{:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Jueves Santo", :regions => [:ar]},
22
- {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Viernes Santo", :regions => [:ar]}],
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Viernes Santo", :regions => [:ar]}],
23
22
  1 => [{:mday => 1, :name => "Año Nuevo", :regions => [:ar]}],
23
+ 2 => [{:mday => 8, :name => "Carnaval", :regions => [:ar]},
24
+ {:mday => 9, :name => "Carnaval", :regions => [:ar]}],
24
25
  3 => [{:mday => 24, :name => "Día Nacional de la Memoria por la Verdad y la Justicia", :regions => [:ar]}],
25
26
  4 => [{:mday => 2, :name => "Día del Veterano y de los Caídos en la Guerra de Malvinas", :regions => [:ar]}],
26
27
  5 => [{:mday => 1, :name => "Día del Trabajador", :regions => [:ar]},
27
28
  {:mday => 25, :name => "Día de la Revolución de Mayo", :regions => [:ar]}],
28
29
  6 => [{:mday => 20, :name => "Día de la Bandera", :regions => [:ar]}],
29
- 7 => [{:mday => 9, :name => "Día de la Independencia", :regions => [:ar]}],
30
- 8 => [{:wday => 1, :week => 3, :name => "Paso a la Inmortalidad del General José de San Martín", :regions => [:ar]}],
31
- 10 => [{:wday => 1, :week => 2, :name => "Día del Respeto a la Diversidad Cultural", :regions => [:ar]}],
32
- 11 => [{:wday => 1, :week => 4, :name => "Día de la Soberanía nacional", :regions => [:ar]}],
30
+ 7 => [{:mday => 8, :name => "Feriado puente turístico", :regions => [:ar]},
31
+ {:mday => 9, :name => "Día de la Independencia", :regions => [:ar]}],
32
+ 8 => [{:mday => 15, :name => "Paso a la Inmortalidad del General José de San Martín", :regions => [:ar]}],
33
+ 10 => [{:mday => 12, :name => "Día del Respeto a la Diversidad Cultural", :regions => [:ar]}],
34
+ 11 => [{:mday => 20, :name => "Día de la Soberanía Nacional", :regions => [:ar]}],
33
35
  12 => [{:mday => 8, :name => "Inmaculada Concepción de María", :regions => [:ar]},
36
+ {:mday => 9, :name => "Feriado puente turístico", :regions => [:ar]},
34
37
  {:mday => 25, :name => "Navidad", :regions => [:ar]}]
35
38
  }
36
39
  end