holidays 1.0.5 → 1.0.6

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 (80) hide show
  1. data/.travis.yml +8 -1
  2. data/{CHANGELOG → CHANGELOG.rdoc} +29 -3
  3. data/LICENSE +2 -2
  4. data/README.rdoc +41 -28
  5. data/data/ar.yaml +82 -0
  6. data/data/au.yaml +40 -4
  7. data/data/be.yaml +65 -0
  8. data/data/br.yaml +12 -12
  9. data/data/ca.yaml +30 -17
  10. data/data/ch.yaml +187 -0
  11. data/data/federal_reserve.yaml +151 -0
  12. data/data/fi.yaml +19 -0
  13. data/data/fr.yaml +5 -5
  14. data/data/gb.yaml +19 -14
  15. data/data/hr.yaml +77 -0
  16. data/data/ie.yaml +36 -8
  17. data/data/index.yaml +12 -2
  18. data/data/ma.yaml +52 -0
  19. data/data/nerc.yaml +51 -0
  20. data/data/north_america_informal.yaml +13 -1
  21. data/data/pt.yaml +14 -13
  22. data/data/ro.yaml +76 -0
  23. data/data/sk.yaml +74 -0
  24. data/data/us.yaml +5 -1
  25. data/data/ve.yaml +70 -0
  26. data/holidays.gemspec +41 -9
  27. data/lib/holidays.rb +57 -34
  28. data/lib/holidays/MANIFEST +35 -24
  29. data/lib/holidays/ar.rb +42 -0
  30. data/lib/holidays/at.rb +3 -3
  31. data/lib/holidays/au.rb +28 -4
  32. data/lib/holidays/be.rb +40 -0
  33. data/lib/holidays/br.rb +1 -1
  34. data/lib/holidays/ca.rb +7 -3
  35. data/lib/holidays/ch.rb +92 -0
  36. data/lib/holidays/europe.rb +173 -53
  37. data/lib/holidays/federal_reserve.rb +50 -0
  38. data/lib/holidays/fi.rb +14 -1
  39. data/lib/holidays/fr.rb +1 -1
  40. data/lib/holidays/gb.rb +1 -1
  41. data/lib/holidays/hr.rb +42 -0
  42. data/lib/holidays/hu.rb +38 -0
  43. data/lib/holidays/ie.rb +16 -7
  44. data/lib/holidays/ma.rb +37 -0
  45. data/lib/holidays/mx.rb +3 -1
  46. data/lib/holidays/nerc.rb +34 -0
  47. data/lib/holidays/north_america.rb +9 -4
  48. data/lib/holidays/pt.rb +1 -1
  49. data/lib/holidays/ro.rb +40 -0
  50. data/lib/holidays/scandinavia.rb +13 -0
  51. data/lib/holidays/sk.rb +42 -0
  52. data/lib/holidays/us.rb +6 -3
  53. data/lib/holidays/ve.rb +40 -0
  54. data/rakefile.rb +1 -1
  55. data/test/defs/test_defs_ar.rb +27 -0
  56. data/test/defs/test_defs_au.rb +10 -0
  57. data/test/defs/test_defs_be.rb +25 -0
  58. data/test/defs/test_defs_br.rb +5 -5
  59. data/test/defs/test_defs_ca.rb +22 -2
  60. data/test/defs/test_defs_ch.rb +39 -0
  61. data/test/defs/test_defs_europe.rb +160 -10
  62. data/test/defs/test_defs_federal_reserve.rb +84 -0
  63. data/test/defs/test_defs_fi.rb +5 -0
  64. data/test/defs/test_defs_fr.rb +1 -1
  65. data/test/defs/test_defs_gb.rb +7 -2
  66. data/test/defs/test_defs_hr.rb +31 -0
  67. data/test/defs/test_defs_hu.rb +29 -0
  68. data/test/defs/test_defs_ie.rb +18 -3
  69. data/test/defs/test_defs_ma.rb +22 -0
  70. data/test/defs/test_defs_mx.rb +13 -0
  71. data/test/defs/test_defs_nerc.rb +23 -0
  72. data/test/defs/test_defs_north_america.rb +23 -2
  73. data/test/defs/test_defs_pt.rb +4 -3
  74. data/test/defs/test_defs_ro.rb +37 -0
  75. data/test/defs/test_defs_scandinavia.rb +5 -0
  76. data/test/defs/test_defs_sk.rb +28 -0
  77. data/test/defs/test_defs_us.rb +14 -0
  78. data/test/defs/test_defs_ve.rb +28 -0
  79. data/test/test_all_regions.rb +10 -0
  80. metadata +40 -6
@@ -1,23 +1,26 @@
1
1
  # Canadian holiday definitions for the Ruby Holiday gem.
2
2
  # Updated 2008-11-21.
3
- ---
3
+ ---
4
4
  months:
5
- 0:
5
+ 0:
6
6
  - name: Good Friday
7
7
  regions: [ca]
8
8
  function: easter(year)-2
9
+ - name: Easter Sunday
10
+ regions: [ca]
11
+ function: easter(year)
9
12
  - name: Easter Monday
10
13
  regions: [ca]
11
14
  function: easter(year)+1
12
15
  type: informal
13
- 1:
16
+ 1:
14
17
  - name: New Year's Day
15
18
  regions: [ca]
16
19
  mday: 1
17
20
  - name: New Year's
18
21
  regions: [ca_qc]
19
22
  mday: 2
20
- 2:
23
+ 2:
21
24
  - name: Family Day
22
25
  regions: [ca_ab, ca_on, ca_sk]
23
26
  wday: 1
@@ -26,22 +29,26 @@ months:
26
29
  regions: [ca_mb]
27
30
  wday: 1
28
31
  week: 3
29
- 3:
32
+ - name: BC Family Day
33
+ regions: [ca_bc]
34
+ wday: 1
35
+ week: 2
36
+ 3:
30
37
  - name: St. Patrick's Day
31
38
  regions: [ca_nf]
32
39
  mday: 17
33
- 3:
40
+ 3:
34
41
  - name: St. George's Day
35
42
  regions: [ca_nf]
36
43
  mday: 23
37
- 5:
44
+ 5:
38
45
  - name: Victoria Day
39
46
  regions: [ca]
40
47
  function: ca_victoria_day(year)
41
48
  - name: National Patriotes Day
42
49
  regions: [ca_qc]
43
50
  function: ca_victoria_day(year)
44
- 6:
51
+ 6:
45
52
  - name: Discovery Day
46
53
  regions: [ca_nf]
47
54
  mday: 24
@@ -51,7 +58,7 @@ months:
51
58
  - name: National Aboriginal Day
52
59
  regions: [ca_nt]
53
60
  mday: 21
54
- 7:
61
+ 7:
55
62
  - name: Canada Day
56
63
  regions: [ca]
57
64
  mday: 1
@@ -62,7 +69,7 @@ months:
62
69
  - name: Nunavut Day
63
70
  regions: [ca_nu]
64
71
  mday: 9
65
- 8:
72
+ 8:
66
73
  - name: BC Day
67
74
  week: 1
68
75
  regions: [ca_bc]
@@ -87,21 +94,21 @@ months:
87
94
  week: 3
88
95
  regions: [ca_yk]
89
96
  wday: 1
90
- 9:
97
+ 9:
91
98
  - name: Labour Day
92
99
  week: 1
93
100
  regions: [ca]
94
101
  wday: 1
95
- 10:
102
+ 10:
96
103
  - name: Thanksgiving
97
104
  week: 2
98
105
  regions: [ca]
99
106
  wday: 1
100
- 11:
107
+ 11:
101
108
  - name: Remembrance Day
102
109
  regions: [ca]
103
110
  mday: 11
104
- 12:
111
+ 12:
105
112
  - name: Christmas Day
106
113
  regions: [ca]
107
114
  mday: 25
@@ -121,8 +128,9 @@ methods:
121
128
  date
122
129
  end
123
130
  tests: |
124
- {Date.civil(2008,1,1) => 'New Year\'s Day',
125
- Date.civil(2008,3,21) => 'Good Friday',
131
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
132
+ Date.civil(2008,3,21) => 'Good Friday',
133
+ Date.civil(2013,3,31) => 'Easter Sunday',
126
134
  Date.civil(2008,3,24) => 'Easter Monday',
127
135
  Date.civil(2008,5,19) => 'Victoria Day',
128
136
  Date.civil(2008,7,1) => 'Canada Day',
@@ -134,8 +142,13 @@ tests: |
134
142
  assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
135
143
  end
136
144
 
145
+ # Family Day in BC
146
+ [ Date.civil(2013,2,11), Date.civil(2014,2,10) ].each do |date|
147
+ assert_equal 'BC Family Day', Holidays.on(date, :ca_bc)[0][:name]
148
+ end
149
+
137
150
  # Victoria Day
138
151
  [Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
139
152
  Date.civil(2007,5,21), Date.civil(2008,5,19)].each do |date|
140
153
  assert_equal 'Victoria Day', Holidays.on(date, :ca)[0][:name]
141
- end
154
+ end
@@ -0,0 +1,187 @@
1
+ # Swiss holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2012-03-16.
4
+ # Sources:
5
+ # http://www.bj.admin.ch/content/dam/data/staat_buerger/zivilprozessrecht/kant-feiertage.pdf
6
+ #
7
+ # Word of warning:
8
+ # ================
9
+ # As the holidays are defined on a state level and sometimes even on a district / village level,
10
+ # this holiday definition is an approximation of the reality. It should be accurate for most of the cases but
11
+ # no guarantee is given that it is correct for all the special cases :-).
12
+ # Considers both official holidays and holidays that are handled as if they were official holidays.
13
+ #
14
+ # Holiday names are in German in case they are celebrated in the German speaking area and in French / Italian otherwise.
15
+ #
16
+ # Known Issues:
17
+ # * ch_ur: 26th of December is not celebrated in case the 25th is a Monday or a Friday.
18
+ # * ch_fr: Fronleichnam, Maria Himmelfahrt, Allerheiligen, Maria Empfaengnis is celebrated in all villages except
19
+ # some villages of the district of See.
20
+ # * ch_so: - There are a lot of village holidays not included here.
21
+ # - 1st of May is holiday only starting at noon; not included here.
22
+ # - 19th of March is celebrated only in a couple of villages
23
+ # * ch_ar: 26th of December is not celebrated in case the 25th is a Monday or a Friday.
24
+ # * ch_ai: - 22nd of September is celebrated only in part of the state.
25
+ # - 26th of December is not celebrated in case the 25th is a Monday or a Friday.
26
+ # * ch_ne: 26th of December and 2nd of January are only celebrated in case 25th of December and 1st of January are Sundays
27
+ #
28
+ #
29
+ #
30
+ # all regions [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,
31
+ # ch_sh, ch_ar, ch_ai, ch_sg, ch_gr, ch_ag, ch_tg, ch_ti, ch_vd, ch_vs, ch_ne, ch_ge, ch_ju]
32
+ #
33
+ ---
34
+ months:
35
+ 0:
36
+ - name: Karfreitag
37
+ regions: [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]
38
+ function: easter(year)-2
39
+ - name: Ostermontag
40
+ regions: [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_vs, ch_ge, ch_ju]
41
+ function: easter(year)+1
42
+ # State holiday but observed in all the states
43
+ - name: Auffahrt
44
+ regions: [ch]
45
+ function: easter(year)+39
46
+ - name: Pfingstmontag
47
+ regions: [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_vs, ch_ge, ch_ju]
48
+ function: easter(year)+50
49
+ - name: Fronleichnam
50
+ regions: [ch_lu, ch_ur, ch_sz, ch_ow, ch_nw, ch_zg, ch_fr, ch_so, ch_ai, ch_ag, ch_ti, ch_vs, ch_ne, ch_ju]
51
+ function: easter(year)+60
52
+ - name: Lundi du Jeûne fédéral
53
+ regions: [ch_vd]
54
+ function: ch_vd_lundi_du_jeune_federal(year)
55
+ - name: Jeûne genevois
56
+ regions: [ch_ge]
57
+ function: ch_ge_jeune_genevois(year)
58
+ 1:
59
+ - name: Neujahrstag
60
+ regions: [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_vd, ch_vs, ch_ne, ch_ge, ch_ju, ch_ti]
61
+ mday: 1
62
+ - name: Berchtoldstag
63
+ regions: [ch_zh, ch_be, ch_lu, ch_ow, ch_nw, ch_gl, ch_zg, ch_fr, ch_so, ch_sh, ch_sg, ch_ag, ch_tg, ch_vd, ch_vs, ch_ne, ch_ju]
64
+ mday: 2
65
+ - name: Dreikönigstag
66
+ regions: [ch_ur, ch_sz, ch_ti]
67
+ mday: 6
68
+ 3:
69
+ - name: Instauration de la République
70
+ regions: [ch_ne]
71
+ mday: 1
72
+ - name: Josephstag
73
+ regions: [ch_ur, ch_sz, ch_nw, ch_ti, ch_vs]
74
+ mday: 19
75
+ 4:
76
+ - name: Näfelser Fahrt
77
+ regions: [ch_gl]
78
+ function: ch_gl_naefelser_fahrt(year)
79
+ 5:
80
+ - name: Tag der Arbeit
81
+ regions: [ch_zh, ch_bs, ch_bl, ch_sh, ch_ag, ch_tg, ch_ti, ch_ne, ch_ju]
82
+ mday: 1
83
+ 6:
84
+ - name: Commémoration du plébiscite jurassien
85
+ regions: [ch_ju]
86
+ mday: 23
87
+ - name: San Pietro e Paolo
88
+ regions: [ch_ti]
89
+ mday: 29
90
+ 8:
91
+ # Federal holiday
92
+ - name: Bundesfeiertag
93
+ regions: [ch]
94
+ mday: 1
95
+ - name: Mariä Himmelfahrt
96
+ regions: [ch_lu, ch_ur, ch_sz, ch_ow, ch_nw, ch_zg, ch_fr, ch_so, ch_ai, ch_ag, ch_ti, ch_vs, ch_ju]
97
+ mday: 15
98
+ 9:
99
+ - name: Mauritiustag
100
+ regions: [ch_ai]
101
+ mday: 22
102
+ - name: Bruderklausenfest
103
+ regions: [ch_ow]
104
+ mday: 25
105
+ 11:
106
+ - name: Allerheiligen
107
+ regions: [ch_lu, ch_ur, ch_sz, ch_ow, ch_nw, ch_gl, ch_zg, ch_fr, ch_so, ch_ai, ch_sg, ch_ag, ch_ti, ch_vs, ch_ju]
108
+ mday: 1
109
+ 12:
110
+ - name: Maria Empfängnis
111
+ regions: [ch_lu, ch_ur, ch_sz, ch_ow, ch_nw, ch_zg, ch_fr, ch_ai, ch_ag, ch_ti, ch_vs]
112
+ mday: 8
113
+ # State holiday but observed in all the states
114
+ - name: Weihnachten
115
+ regions: [ch]
116
+ mday: 25
117
+ - name: Stefanstag
118
+ regions: [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_vs, ch_ne]
119
+ mday: 26
120
+ - name: Restauration de la République
121
+ regions: [ch_ge]
122
+ mday: 31
123
+ methods:
124
+ ch_vd_lundi_du_jeune_federal: |
125
+ # Monday after the third Sunday of September
126
+ def self.ch_vd_lundi_du_jeune_federal(year)
127
+ date = Date.civil(year,9,1)
128
+ # Find the first Sunday of September
129
+ until date.wday.eql? 0 do
130
+ date += 1
131
+ end
132
+ # There are 15 days between the first Sunday
133
+ # and the Monday after the third Sunday
134
+ date + 15
135
+ end
136
+ ch_ge_jeune_genevois: |
137
+ # Thursday after the first Sunday of September
138
+ def self.ch_ge_jeune_genevois(year)
139
+ date = Date.civil(year,9,1)
140
+ # Find the first Sunday of September
141
+ until date.wday.eql? 0 do
142
+ date += 1
143
+ end
144
+ # Thursday is four days after Sunday
145
+ date + 4
146
+ end
147
+ ch_gl_naefelser_fahrt: |
148
+ # First Thursday of April. If the first Thursday of April is in the week before easter, then a week later.
149
+ def self.ch_gl_naefelser_fahrt(year)
150
+ date = Date.civil(year,4,1)
151
+ # Find the first Thursday of April
152
+ until date.wday.eql? 4 do
153
+ date += 1
154
+ end
155
+ if date.eql?(easter(year)-3)
156
+ date += 7
157
+ end
158
+ date
159
+ end
160
+ tests: |
161
+ { Date.civil(2012,8,1) => 'Bundesfeiertag',
162
+ Date.civil(2012,12,25) => 'Weihnachten',
163
+ Date.civil(2012,05,17) => 'Auffahrt'
164
+ }.each do |date, name|
165
+ assert_equal name, (Holidays.on(date, :ch)[0] || {})[:name]
166
+ end
167
+
168
+ { Date.civil(2012,8,1) => 'Bundesfeiertag',
169
+ Date.civil(2012,12,25) => 'Weihnachten',
170
+ Date.civil(2012,05,17) => 'Auffahrt',
171
+ Date.civil(2012,5,1) => 'Tag der Arbeit',
172
+ Date.civil(2012,12,26) => 'Stefanstag'
173
+ }.each do |date, name|
174
+ assert_equal name, (Holidays.on(date, :ch_zh)[0] || {})[:name]
175
+ end
176
+
177
+ [Date.civil(2012,9,17), Date.civil(2013,9,16), Date.civil(2014,9,22)].each do |date|
178
+ assert_equal 'Lundi du Jeûne fédéral', (Holidays.on(date, :ch_vd)[0] || {})[:name]
179
+ end
180
+
181
+ [Date.civil(2012,9,6), Date.civil(2013,9,5), Date.civil(2014,9,11)].each do |date|
182
+ assert_equal 'Jeûne genevois', (Holidays.on(date, :ch_ge)[0] || {})[:name]
183
+ end
184
+
185
+ [Date.civil(2012,4,12), Date.civil(2013,4,4), Date.civil(2014,4,3)].each do |date|
186
+ assert_equal 'Näfelser Fahrt', (Holidays.on(date, :ch_gl)[0] || {})[:name]
187
+ end
@@ -0,0 +1,151 @@
1
+ # Federal reserve holidays definition for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2012-08-17
4
+ #
5
+ # Sources:
6
+ # -
7
+ ---
8
+ months:
9
+ 0:
10
+ - name: Good Friday
11
+ function: easter(year)-2
12
+ regions: [federal_reserve]
13
+ 1:
14
+ - name: New Year's Day
15
+ regions: [federal_reserve]
16
+ mday: 1
17
+ observed: to_monday_if_sunday
18
+ - name: Birthday of Martin Luther King, Jr
19
+ week: 3
20
+ wday: 1
21
+ regions: [federal_reserve]
22
+ - name: Inauguration Day
23
+ function: us_inauguration_day(year)
24
+ regions: [federal_reserve]
25
+ 2:
26
+ - name: Washington's Birthday
27
+ week: 3
28
+ wday: 1
29
+ regions: [federal_reserve]
30
+ 5:
31
+ - name: Memorial Day
32
+ week: -1
33
+ wday: 1
34
+ regions: [federal_reserve]
35
+ 7:
36
+ - name: Independence Day
37
+ regions: [federal_reserve]
38
+ mday: 4
39
+ observed: to_monday_if_sunday
40
+ 9:
41
+ - name: Labor Day
42
+ week: 1
43
+ regions: [federal_reserve]
44
+ wday: 1
45
+ 10:
46
+ - name: Columbus Day
47
+ week: 2
48
+ regions: [federal_reserve]
49
+ wday: 1
50
+ 11:
51
+ - name: Veterans Day
52
+ regions: [federal_reserve]
53
+ mday: 11
54
+ observed: to_monday_if_sunday
55
+ - name: Thanksgiving Day
56
+ week: 4
57
+ wday: 4
58
+ regions: [federal_reserve]
59
+ 12:
60
+ - name: Christmas Eve
61
+ regions: [federal_reserve]
62
+ mday: 24
63
+ observed: to_monday_if_sunday
64
+ - name: Christmas Day
65
+ regions: [federal_reserve]
66
+ mday: 25
67
+ observed: to_monday_if_sunday
68
+ - name: New Year's Eve
69
+ regions: [federal_reserve]
70
+ mday: 31
71
+ methods:
72
+ us_inauguration_day: |
73
+ # January 20, every fourth year, following Presidential election
74
+ def self.us_inauguration_day(year)
75
+ year % 4 == 1 ? 20 : nil
76
+ end
77
+
78
+
79
+ tests: |
80
+ {Date.civil(2012,1,2) => "New Year's Day",
81
+ Date.civil(2012,1,16) => "Birthday of Martin Luther King, Jr",
82
+ Date.civil(2012,2,20) => "Washington's Birthday",
83
+ Date.civil(2012,4,6) => "Good Friday",
84
+ Date.civil(2012,5,28) => "Memorial Day",
85
+ Date.civil(2012,7,4) => "Independence Day",
86
+ Date.civil(2012,9,3) => "Labor Day",
87
+ Date.civil(2012,10,8) => "Columbus Day",
88
+ Date.civil(2012,11,12) => "Veterans Day",
89
+ Date.civil(2012,11,22) => "Thanksgiving Day",
90
+ Date.civil(2012,12,24) => "Christmas Eve",
91
+ Date.civil(2012,12,25) => "Christmas Day",
92
+ Date.civil(2012,12,31) => "New Year's Eve",
93
+
94
+ Date.civil(2013,1,1) => "New Year's Day",
95
+ Date.civil(2013,1,21) => "Birthday of Martin Luther King, Jr",
96
+ Date.civil(2013,2,18) => "Washington's Birthday",
97
+ Date.civil(2013,3,29) => "Good Friday",
98
+ Date.civil(2013,5,27) => "Memorial Day",
99
+ Date.civil(2013,7,4) => "Independence Day",
100
+ Date.civil(2013,9,2) => "Labor Day",
101
+ Date.civil(2013,10,14) => "Columbus Day",
102
+ Date.civil(2013,11,11) => "Veterans Day",
103
+ Date.civil(2013,11,28) => "Thanksgiving Day",
104
+ Date.civil(2013,12,24) => "Christmas Eve",
105
+ Date.civil(2013,12,25) => "Christmas Day",
106
+ Date.civil(2013,12,31) => "New Year's Eve",
107
+
108
+ Date.civil(2014,1,1) => "New Year's Day",
109
+ Date.civil(2014,1,20) => "Birthday of Martin Luther King, Jr",
110
+ Date.civil(2014,2,17) => "Washington's Birthday",
111
+ Date.civil(2014,4,18) => "Good Friday",
112
+ Date.civil(2014,5,26) => "Memorial Day",
113
+ Date.civil(2014,7,4) => "Independence Day",
114
+ Date.civil(2014,9,1) => "Labor Day",
115
+ Date.civil(2014,10,13) => "Columbus Day",
116
+ Date.civil(2014,11,11) => "Veterans Day",
117
+ Date.civil(2014,11,27) => "Thanksgiving Day",
118
+ Date.civil(2014,12,24) => "Christmas Eve",
119
+ Date.civil(2014,12,25) => "Christmas Day",
120
+ Date.civil(2014,12,31) => "New Year's Eve",
121
+
122
+ Date.civil(2015,1,1) => "New Year's Day",
123
+ Date.civil(2015,1,19) => "Birthday of Martin Luther King, Jr",
124
+ Date.civil(2015,2,16) => "Washington's Birthday",
125
+ Date.civil(2015,4,3) => "Good Friday",
126
+ Date.civil(2015,5,25) => "Memorial Day",
127
+ Date.civil(2015,7,4) => "Independence Day",
128
+ Date.civil(2015,9,7) => "Labor Day",
129
+ Date.civil(2015,10,12) => "Columbus Day",
130
+ Date.civil(2015,11,11) => "Veterans Day",
131
+ Date.civil(2015,11,26) => "Thanksgiving Day",
132
+ Date.civil(2015,12,24) => "Christmas Eve",
133
+ Date.civil(2015,12,25) => "Christmas Day",
134
+ Date.civil(2015,12,31) => "New Year's Eve",
135
+
136
+ Date.civil(2016,1,1) => "New Year's Day",
137
+ Date.civil(2016,1,18) => "Birthday of Martin Luther King, Jr",
138
+ Date.civil(2016,2,15) => "Washington's Birthday",
139
+ Date.civil(2016,3,25) => "Good Friday",
140
+ Date.civil(2016,5,30) => "Memorial Day",
141
+ Date.civil(2016,7,4) => "Independence Day",
142
+ Date.civil(2016,9,5) => "Labor Day",
143
+ Date.civil(2016,10,10) => "Columbus Day",
144
+ Date.civil(2016,11,11) => "Veterans Day",
145
+ Date.civil(2016,11,24) => "Thanksgiving Day",
146
+ Date.civil(2016,12,24) => "Christmas Eve",
147
+ Date.civil(2016,12,26) => "Christmas Day",
148
+ Date.civil(2016,12,31) => "New Year's Eve",
149
+ }.each do |date, name|
150
+ assert_equal name, (Holidays.on(date, :federal_reserve, :observed)[0] || {})[:name]
151
+ end