wombleton-holidays 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/.gitignore +3 -0
  2. data/CHANGELOG +22 -0
  3. data/LICENSE +21 -0
  4. data/README.rdoc +77 -0
  5. data/REFERENCES +16 -0
  6. data/VERSION +1 -0
  7. data/data/SYNTAX +111 -0
  8. data/data/au.yaml +111 -0
  9. data/data/build_defs.rb +152 -0
  10. data/data/ca.yaml +141 -0
  11. data/data/cz.yaml +68 -0
  12. data/data/de.yaml +111 -0
  13. data/data/dk.yaml +117 -0
  14. data/data/es.yaml +161 -0
  15. data/data/fr.yaml +70 -0
  16. data/data/gb.yaml +106 -0
  17. data/data/ie.yaml +58 -0
  18. data/data/index.yaml +26 -0
  19. data/data/is.yaml +136 -0
  20. data/data/it.yaml +66 -0
  21. data/data/mx.yaml +106 -0
  22. data/data/nl.yaml +67 -0
  23. data/data/no.yaml +82 -0
  24. data/data/north_america_informal.yaml +49 -0
  25. data/data/nyse.yaml +63 -0
  26. data/data/nz.yaml +141 -0
  27. data/data/pt.yaml +85 -0
  28. data/data/se.yaml +91 -0
  29. data/data/united_nations.yaml +188 -0
  30. data/data/ups.yaml +56 -0
  31. data/data/us.yaml +81 -0
  32. data/data/za.yaml +78 -0
  33. data/holidays.gemspec +16 -0
  34. data/lib/holidays/MANIFEST +28 -0
  35. data/lib/holidays/au.rb +43 -0
  36. data/lib/holidays/ca.rb +69 -0
  37. data/lib/holidays/cz.rb +36 -0
  38. data/lib/holidays/de.rb +51 -0
  39. data/lib/holidays/dk.rb +48 -0
  40. data/lib/holidays/es.rb +53 -0
  41. data/lib/holidays/europe.rb +236 -0
  42. data/lib/holidays/fr.rb +37 -0
  43. data/lib/holidays/gb.rb +41 -0
  44. data/lib/holidays/ie.rb +33 -0
  45. data/lib/holidays/is.rb +62 -0
  46. data/lib/holidays/it.rb +36 -0
  47. data/lib/holidays/mx.rb +52 -0
  48. data/lib/holidays/nl.rb +37 -0
  49. data/lib/holidays/no.rb +40 -0
  50. data/lib/holidays/north_america.rb +108 -0
  51. data/lib/holidays/nyse.rb +33 -0
  52. data/lib/holidays/nz.rb +69 -0
  53. data/lib/holidays/pt.rb +38 -0
  54. data/lib/holidays/scandinavia.rb +115 -0
  55. data/lib/holidays/se.rb +53 -0
  56. data/lib/holidays/united_nations.rb +25 -0
  57. data/lib/holidays/ups.rb +32 -0
  58. data/lib/holidays/us.rb +49 -0
  59. data/lib/holidays/za.rb +36 -0
  60. data/lib/holidays.rb +408 -0
  61. data/rakefile.rb +103 -0
  62. data/test/defs/test_defs_au.rb +35 -0
  63. data/test/defs/test_defs_ca.rb +28 -0
  64. data/test/defs/test_defs_cz.rb +25 -0
  65. data/test/defs/test_defs_de.rb +48 -0
  66. data/test/defs/test_defs_dk.rb +29 -0
  67. data/test/defs/test_defs_es.rb +56 -0
  68. data/test/defs/test_defs_europe.rb +277 -0
  69. data/test/defs/test_defs_fr.rb +25 -0
  70. data/test/defs/test_defs_gb.rb +35 -0
  71. data/test/defs/test_defs_ie.rb +20 -0
  72. data/test/defs/test_defs_is.rb +32 -0
  73. data/test/defs/test_defs_it.rb +24 -0
  74. data/test/defs/test_defs_mx.rb +21 -0
  75. data/test/defs/test_defs_nl.rb +23 -0
  76. data/test/defs/test_defs_no.rb +28 -0
  77. data/test/defs/test_defs_north_america.rb +53 -0
  78. data/test/defs/test_defs_nyse.rb +21 -0
  79. data/test/defs/test_defs_nz.rb +21 -0
  80. data/test/defs/test_defs_pt.rb +31 -0
  81. data/test/defs/test_defs_scandinavia.rb +75 -0
  82. data/test/defs/test_defs_se.rb +32 -0
  83. data/test/defs/test_defs_ups.rb +20 -0
  84. data/test/defs/test_defs_us.rb +22 -0
  85. data/test/defs/test_defs_za.rb +24 -0
  86. data/test/test_date.rb +101 -0
  87. data/test/test_helper.rb +11 -0
  88. data/test/test_holidays.rb +117 -0
  89. data/test/test_multiple_regions.rb +20 -0
  90. metadata +172 -0
data/data/cz.yaml ADDED
@@ -0,0 +1,68 @@
1
+ # Czech holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2010-01-20.
4
+ # Sources:
5
+ # - http://cs.wikipedia.org/wiki/%C4%8Cesk%C3%BD_st%C3%A1tn%C3%AD_sv%C3%A1tek
6
+ # - http://www.mpsv.cz/cs/74
7
+ ---
8
+ months:
9
+ 0:
10
+ - name: Velikonoční pondělí
11
+ regions: [cz]
12
+ function: easter(year)+1
13
+ 1:
14
+ - name: Den obnovy samostatného českého státu
15
+ regions: [cz]
16
+ mday: 1
17
+ 5:
18
+ - name: Svátek práce
19
+ regions: [cz]
20
+ mday: 1
21
+ - name: Den vítězství
22
+ regions: [cz]
23
+ mday: 8
24
+ 7:
25
+ - name: Den slovanských věrozvěstů Cyrila a Metoděje
26
+ regions: [cz]
27
+ mday: 5
28
+ - name: Den upálení mistra Jana Husa
29
+ regions: [cz]
30
+ mday: 6
31
+ 9:
32
+ - name: Den české státnosti
33
+ regions: [cz]
34
+ mday: 28
35
+ 10:
36
+ - name: Den vzniku samostatného československého státu
37
+ regions: [cz]
38
+ mday: 28
39
+ 11:
40
+ - name: Den boje za svobodu a demokracii
41
+ regions: [cz]
42
+ mday: 17
43
+ 12:
44
+ - name: Štědrý den
45
+ regions: [cz]
46
+ mday: 24
47
+ - name: 1. svátek vánoční
48
+ regions: [cz]
49
+ mday: 25
50
+ - name: 2. svátek vánoční
51
+ regions: [cz]
52
+ mday: 26
53
+ tests: |
54
+ {Date.civil(2010,1,1) => 'Den obnovy samostatného českého státu',
55
+ Date.civil(2010,4,5) => 'Velikonoční pondělí',
56
+ Date.civil(2010,5,1) => 'Svátek práce',
57
+ Date.civil(2010,5,8) => 'Den vítězství',
58
+ Date.civil(2010,7,5) => 'Den slovanských věrozvěstů Cyrila a Metoděje',
59
+ Date.civil(2010,7,6) => 'Den upálení mistra Jana Husa',
60
+ Date.civil(2010,9,28) => 'Den české státnosti',
61
+ Date.civil(2010,10,28) => 'Den vzniku samostatného československého státu',
62
+ Date.civil(2010,11,17) => 'Den boje za svobodu a demokracii',
63
+ Date.civil(2010,12,24) => 'Štědrý den',
64
+ Date.civil(2010,12,25) => '1. svátek vánoční',
65
+ Date.civil(2010,12,26) => '2. svátek vánoční'}.each do |date, name|
66
+ assert_equal name, (Holidays.on(date, :cz, :informal)[0] || {})[:name]
67
+ end
68
+
data/data/de.yaml ADDED
@@ -0,0 +1,111 @@
1
+ # German holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2009-11-05.
4
+ # Sources:
5
+ # - http://en.wikipedia.org/wiki/Holidays_in_Germany
6
+ # - http://www.timeanddate.com/calendar/index.html?country=8
7
+ # - http://www.germany.info/relaunch/welcome/travel/holidays.html
8
+ ---
9
+ months:
10
+ 0:
11
+ - name: Karfreitag
12
+ regions: [de]
13
+ function: easter(year)-2
14
+ - name: Ostermontag
15
+ regions: [de]
16
+ function: easter(year)+1
17
+ - name: Christi Himmelfahrt
18
+ regions: [de]
19
+ function: easter(year)+39
20
+ - name: Pfingstmontag
21
+ regions: [de]
22
+ function: easter(year)+50
23
+ - name: Fronleichnam
24
+ regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl]
25
+ function: easter(year)+60
26
+ 1:
27
+ - name: Neujahrstag
28
+ regions: [de]
29
+ mday: 1
30
+ - name: Heilige Drei Könige
31
+ regions: [de_bw, de_by, de_st]
32
+ mday: 6
33
+ 5:
34
+ - name: Tag der Arbeit
35
+ regions: [de]
36
+ mday: 1
37
+ 8:
38
+ - name: Mariä Himmelfahrt
39
+ regions: [de_by, de_sl]
40
+ mday: 15
41
+ 10:
42
+ - name: Tag der Deutschen Einheit
43
+ regions: [de]
44
+ mday: 3
45
+ - name: Reformationstag
46
+ regions: [de_bb, de_mv, de_sn, de_st, de_th]
47
+ mday: 31
48
+ 11:
49
+ - name: Allerheiligen
50
+ regions: [de_bw, de_by, de_nw, de_rp, de_sl]
51
+ mday: 1
52
+ - name: Buß- und Bettag
53
+ regions: [de_sn]
54
+ function: de_buss_und_bettag(year)
55
+ 12:
56
+ - name: 1. Weihnachtstag
57
+ regions: [de]
58
+ mday: 25
59
+ - name: 2. Weihnachtstag
60
+ regions: [de]
61
+ mday: 26
62
+ methods:
63
+ de_buss_und_bettag: |
64
+ # Germany: Wednesday before November 23
65
+ def self.de_buss_und_bettag(year)
66
+ date = Date.civil(year,11,23)
67
+ if date.wday > 3
68
+ date -= (date.wday - 3)
69
+ else
70
+ date -= (date.wday + 4)
71
+ end
72
+ date
73
+ end
74
+ tests: |
75
+ {Date.civil(2009,1,1) => 'Neujahrstag',
76
+ Date.civil(2009,4,10) => 'Karfreitag',
77
+ Date.civil(2009,4,13) => 'Ostermontag',
78
+ Date.civil(2009,5,1) => 'Tag der Arbeit',
79
+ Date.civil(2009,5,21) => 'Christi Himmelfahrt',
80
+ Date.civil(2009,6,1) => 'Pfingstmontag',
81
+ Date.civil(2009,10,3) => 'Tag der Deutschen Einheit',
82
+ Date.civil(2009,12,25) => '1. Weihnachtstag',
83
+ Date.civil(2009,12,26) => '2. Weihnachtstag'}.each do |date, name|
84
+ assert_equal name, (Holidays.on(date, :de, :informal)[0] || {})[:name]
85
+ end
86
+
87
+ [:de_bw, :de_by, :de_st, :de_].each do |r|
88
+ assert_equal 'Heilige Drei Könige', Date.civil(2009,1,6).holidays(r)[0][:name]
89
+ end
90
+
91
+ [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_].each do |r|
92
+ assert_equal 'Fronleichnam', Date.civil(2009,6,11).holidays(r)[0][:name]
93
+ end
94
+
95
+ [:de_by, :de_sl, :de_].each do |r|
96
+ assert_equal 'Mariä Himmelfahrt', Date.civil(2009,8,15).holidays(r)[0][:name]
97
+ end
98
+
99
+ [:de_bb, :de_mv, :de_sn, :de_st, :de_th, :de_].each do |r|
100
+ assert_equal 'Reformationstag', Date.civil(2009,10,31).holidays(r)[0][:name]
101
+ end
102
+
103
+ [:de_bw, :de_by, :de_nw, :de_rp, :de_sl, :de_].each do |r|
104
+ assert_equal 'Allerheiligen', Date.civil(2009,11,1).holidays(r)[0][:name]
105
+ end
106
+
107
+ # Repentance Day
108
+ assert_equal 'Buß- und Bettag', Date.civil(2004,11,17).holidays(:de_sn)[0][:name]
109
+ assert_equal 'Buß- und Bettag', Date.civil(2005,11,16).holidays(:de_sn)[0][:name]
110
+ assert_equal 'Buß- und Bettag', Date.civil(2006,11,22).holidays(:de_sn)[0][:name]
111
+ assert_equal 'Buß- und Bettag', Date.civil(2009,11,18).holidays(:de_sn)[0][:name]
data/data/dk.yaml ADDED
@@ -0,0 +1,117 @@
1
+ # Danish holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2008-11-22.
4
+ # Sources:
5
+ # - http://en.wikipedia.org/wiki/Holidays_in_Denmark
6
+ # - http://www.amblondon.um.dk/en/menu/AboutDenmark/PublicHolidaysInDK/PublicHolidaysinDenmark-until2010.htm
7
+ # - http://borger.dk/forside/kirke-og-tro/folkekirken/officielle-helligdage
8
+ ---
9
+ months:
10
+ 0:
11
+ - name: Fastelavn
12
+ regions: [dk]
13
+ function: easter(year)-49
14
+ type: informal
15
+ - name: Palmesøndag
16
+ regions: [dk]
17
+ function: easter(year)-7
18
+ - name: Skærtorsdag
19
+ regions: [dk]
20
+ function: easter(year)-3
21
+ - name: Langfredag
22
+ regions: [dk]
23
+ function: easter(year)-2
24
+ - name: Påskedag
25
+ regions: [dk]
26
+ function: easter(year)
27
+ - name: 2. påskedag
28
+ regions: [dk]
29
+ function: easter(year)+1
30
+ - name: Store Bededag
31
+ regions: [dk]
32
+ function: easter(year)+26
33
+ - name: Kristi Himmelfartsdag
34
+ regions: [dk]
35
+ function: easter(year)+39
36
+ - name: Pinsedag
37
+ regions: [dk]
38
+ function: easter(year)+49
39
+ - name: 2. Pinsedag
40
+ regions: [dk]
41
+ function: easter(year)+50
42
+ 1:
43
+ - name: Nytårsdag
44
+ regions: [dk]
45
+ mday: 1
46
+ 4:
47
+ - name: 1. april
48
+ regions: [dk]
49
+ mday: 1
50
+ type: informal
51
+ - name: Danmarks besættelse
52
+ regions: [dk]
53
+ mday: 9
54
+ type: informal
55
+ - name: Dronningens fødselsdag
56
+ regions: [dk]
57
+ mday: 16
58
+ type: informal
59
+ 5:
60
+ - name: Arbejdernes kampdag
61
+ regions: [dk]
62
+ mday: 1
63
+ - name: Danmarks befrielse
64
+ regions: [dk]
65
+ mday: 5
66
+ type: informal
67
+ 6:
68
+ - name: Grundlovsdag
69
+ regions: [dk]
70
+ mday: 5
71
+ - name: Valdemarsdag og Genforeningsdag
72
+ regions: [dk]
73
+ mday: 15
74
+ type: informal
75
+ - name: Sankt Hans aften
76
+ regions: [dk]
77
+ mday: 23
78
+ type: informal
79
+ 11:
80
+ - name: Mortensaften
81
+ regions: [dk]
82
+ mday: 10
83
+ type: informal
84
+ 12:
85
+ - name: Sankt Lucia
86
+ regions: [dk]
87
+ mday: 13
88
+ type: informal
89
+ - name: Juleaftensdag
90
+ regions: [dk]
91
+ mday: 24
92
+ - name: 1. juledag
93
+ regions: [dk]
94
+ mday: 25
95
+ - name: 2. juledag
96
+ regions: [dk]
97
+ mday: 26
98
+ tests: |
99
+ {Date.civil(2007,1,1) => 'Nytårsdag',
100
+ Date.civil(2007,2,18) => 'Fastelavn',
101
+ Date.civil(2007,4,9) => 'Danmarks besættelse',
102
+ Date.civil(2007,4,16) => 'Dronningens fødselsdag',
103
+ Date.civil(2007,4,5) => 'Skærtorsdag',
104
+ Date.civil(2007,4,6) => 'Langfredag',
105
+ Date.civil(2007,4,8) => 'Påskedag',
106
+ Date.civil(2007,4,9) => '2. påskedag',
107
+ Date.civil(2007,5,1) => 'Arbejdernes kampdag',
108
+ Date.civil(2007,5,4) => 'Store Bededag',
109
+ Date.civil(2007,5,17) => 'Kristi Himmelfartsdag',
110
+ Date.civil(2007,5,27) => 'Pinsedag',
111
+ Date.civil(2007,5,28) => '2. Pinsedag',
112
+ Date.civil(2007,6,5) => 'Grundlovsdag',
113
+ Date.civil(2007,12,24) => 'Juleaftensdag',
114
+ Date.civil(2007,12,25) => '1. juledag',
115
+ Date.civil(2007,12,26) => '2. juledag'}.each do |date, name|
116
+ assert_equal name, (Holidays.on(date, :dk, :informal)[0] || {})[:name]
117
+ end
data/data/es.yaml ADDED
@@ -0,0 +1,161 @@
1
+ # Spanish holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Including the Balearic Islands and the Canary Islands.
4
+ #
5
+ # Updated: 2008-11-29.
6
+ #
7
+ # Sources:
8
+ # - http://en.wikipedia.org/wiki/Public_holidays_in_Spain
9
+ # - http://www.timeanddate.com/calendar/index.html?country=16
10
+ #
11
+ # Notes:
12
+ # - Valencia is encoded as both es_v and es_vc
13
+ ---
14
+ months:
15
+ 0:
16
+ - name: Jueves Santo
17
+ regions: [es_pv, es_ct, es_na, es_v, es_vc]
18
+ function: easter(year)-3
19
+ - name: Viernes Santo
20
+ regions: [es]
21
+ function: easter(year)-2
22
+ - name: Lunes de Pascua
23
+ regions: [es_pv, es_ct, es_na, es_v, es_vc]
24
+ function: easter(year)+1
25
+ 1:
26
+ - name: Año Nuevo
27
+ regions: [es]
28
+ mday: 1
29
+ - name: Día de Reyes
30
+ regions: [es]
31
+ mday: 6
32
+ 2:
33
+ - name: Día de Andalucía
34
+ regions: [es_an]
35
+ mday: 28
36
+ 3:
37
+ - name: Día de las Islas Baleares
38
+ regions: [es_ib]
39
+ mday: 1
40
+ - name: San José
41
+ regions: [es_v, es_vc, es_cm, es_mu, es_m]
42
+ mday: 19
43
+ 4:
44
+ - name: San Jorge
45
+ regions: [es_ar, es_cl]
46
+ mday: 23
47
+ - name: Día de Aragón
48
+ regions: [es_ar]
49
+ mday: 23
50
+ 5:
51
+ - name: Día del Trabajador
52
+ regions: [es]
53
+ mday: 1
54
+ - name: Fiesta de la Comunidad
55
+ regions: [es_m]
56
+ mday: 2
57
+ - name: Día de las Canarias
58
+ regions: [es_cn]
59
+ mday: 30
60
+ - name: Día de la Región Castilla-La Mancha
61
+ regions: [es_cm]
62
+ mday: 31
63
+ 6:
64
+ - name: Día de la Región de Murcia
65
+ regions: [es_mu]
66
+ mday: 9
67
+ - name: Día de La Rioja
68
+ regions: [es_lo]
69
+ mday: 9
70
+ 7:
71
+ - name: Santiago Apostol
72
+ regions: [es_ga]
73
+ mday: 23
74
+ 8:
75
+ - name: Asunción
76
+ regions: [es]
77
+ mday: 15
78
+ 9:
79
+ - name: Día de Ceuta
80
+ regions: [es_ce]
81
+ mday: 2
82
+ - name: Día de Asturias
83
+ regions: [es_o]
84
+ mday: 8
85
+ - name: Día de Extremadura
86
+ regions: [es_ex]
87
+ mday: 8
88
+ - name: Fiesta Nacional de Cataluña
89
+ regions: [es_ct]
90
+ mday: 11
91
+ 10:
92
+ - name: Día de Valencia
93
+ regions: [es_vc, es_v]
94
+ mday: 9
95
+ - name: Día de la Hispanidad
96
+ regions: [es]
97
+ mday: 12
98
+ 11:
99
+ - name: Todos los Santos
100
+ regions: [es]
101
+ mday: 1
102
+ 12:
103
+ - name: Día de la Constitución
104
+ regions: [es]
105
+ mday: 6
106
+ - name: Inmaculada Concepción
107
+ regions: [es]
108
+ mday: 8
109
+ - name: Navidad del Señor
110
+ regions: [es]
111
+ mday: 25
112
+ - name: San Esteban
113
+ regions: [es_ib, es_ct]
114
+ mday: 26
115
+ tests: |
116
+ {Date.civil(2009,1,1) => 'Año Nuevo',
117
+ Date.civil(2009,1,6) => 'Día de Reyes',
118
+ Date.civil(2009,4,10) => 'Viernes Santo',
119
+ Date.civil(2009,5,1) => 'Día del Trabajador',
120
+ Date.civil(2009,8,15) => 'Asunción',
121
+ Date.civil(2009,10,12) => 'Día de la Hispanidad',
122
+ Date.civil(2009,11,1) => 'Todos los Santos',
123
+ Date.civil(2009,12,6) => 'Día de la Constitución',
124
+ Date.civil(2009,12,8) => 'Inmaculada Concepción',
125
+ Date.civil(2009,12,25) => 'Navidad del Señor'}.each do |date, name|
126
+ assert_equal name, (Holidays.on(date, :es, :informal)[0] || {})[:name]
127
+ end
128
+
129
+ [:es_pv, :es_ct, :es_na, :es_v, :es_vc, :es_].each do |r|
130
+ assert_equal 'Jueves Santo', Date.civil(2009,4,9).holidays(r)[0][:name]
131
+ assert_equal 'Lunes de Pascua', Date.civil(2009,4,13).holidays(r)[0][:name]
132
+ end
133
+
134
+ [:es_v, :es_vc, :es_cm, :es_mu, :es_m, :es_].each do |r|
135
+ assert_equal 'San José', Date.civil(2009,3,19).holidays(r)[0][:name]
136
+ end
137
+
138
+ [:es_ar, :es_cl, :es_].each do |r|
139
+ assert_equal 'San Jorge', Date.civil(2009,4,23).holidays(r)[0][:name]
140
+ end
141
+
142
+ [:es_vc, :es_v, :es_].each do |r|
143
+ assert_equal 'Día de Valencia', Date.civil(2009,10,9).holidays(r)[0][:name]
144
+ end
145
+
146
+ [:es_ib, :es_ct, :es_].each do |r|
147
+ assert_equal 'San Esteban', Date.civil(2009,12,26).holidays(r)[0][:name]
148
+ end
149
+
150
+ assert_equal 'Día de Andalucía', Date.civil(2009,2,28).holidays(:es_an)[0][:name]
151
+ assert_equal 'Día de las Islas Baleares', Date.civil(2009,3,1).holidays(:es_ib)[0][:name]
152
+ assert_equal 'Fiesta de la Comunidad', Date.civil(2006,5,2).holidays(:es_m)[0][:name]
153
+ assert_equal 'Día de las Canarias', Date.civil(2006,5,30).holidays(:es_cn)[0][:name]
154
+ assert_equal 'Día de la Región Castilla-La Mancha', Date.civil(2009,5,31).holidays(:es_cm)[0][:name]
155
+ assert_equal 'Día de la Región de Murcia', Date.civil(2009,6,9).holidays(:es_mu)[0][:name]
156
+ assert_equal 'Día de La Rioja', Date.civil(2009,6,9).holidays(:es_lo)[0][:name]
157
+ assert_equal 'Santiago Apostol', Date.civil(2009,7,23).holidays(:es_ga)[0][:name]
158
+ assert_equal 'Día de Ceuta', Date.civil(2009,9,2).holidays(:es_ce)[0][:name]
159
+ assert_equal 'Día de Asturias', Date.civil(2009,9,8).holidays(:es_o)[0][:name]
160
+ assert_equal 'Día de Extremadura', Date.civil(2009,9,8).holidays(:es_ex)[0][:name]
161
+ assert_equal 'Fiesta Nacional de Cataluña', Date.civil(2009,9,11).holidays(:es_ct)[0][:name]
data/data/fr.yaml ADDED
@@ -0,0 +1,70 @@
1
+ # French holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2008-11-2*.
4
+ # Sources:
5
+ # - http://en.wikipedia.org/wiki/Holidays_in_France
6
+ # - http://riviera.angloinfo.com/information/1/pub_hols.asp
7
+ ---
8
+ months:
9
+ 0:
10
+ - name: Pâques
11
+ regions: [fr]
12
+ function: easter(year)
13
+ - name: Lundi de Pâques
14
+ regions: [fr]
15
+ function: easter(year)+1
16
+ - name: Ascension
17
+ regions: [fr]
18
+ function: easter(year)+39
19
+ - name: Pentecôte
20
+ regions: [fr]
21
+ function: easter(year)+49
22
+ - name: Lundi de Pentecôte
23
+ regions: [fr]
24
+ function: easter(year)+50
25
+ 1:
26
+ - name: Jour de l'an
27
+ regions: [fr]
28
+ mday: 1
29
+ 5:
30
+ - name: Fête du travail
31
+ regions: [fr]
32
+ mday: 1
33
+ - name: Victoire 1945
34
+ regions: [fr]
35
+ mday: 8
36
+ 7:
37
+ - name: Fête nationale
38
+ regions: [fr]
39
+ mday: 14
40
+ 8:
41
+ - name: Assomption
42
+ regions: [fr]
43
+ mday: 15
44
+ 11:
45
+ - name: Toussaint
46
+ regions: [fr]
47
+ mday: 1
48
+ - name: Armistice 1918
49
+ regions: [fr]
50
+ mday: 11
51
+ 12:
52
+ - name: Nöel
53
+ regions: [fr]
54
+ mday: 25
55
+ tests: |
56
+ {Date.civil(2007,1,1) => 'Jour de l\'an',
57
+ Date.civil(2007,4,8) => 'Pâques',
58
+ Date.civil(2007,4,9) => 'Lundi de Pâques',
59
+ Date.civil(2007,5,1) => 'Fête du travail',
60
+ Date.civil(2007,5,8) => 'Victoire 1945',
61
+ Date.civil(2007,5,17) => 'Ascension',
62
+ Date.civil(2007,5,27) => 'Pentecôte',
63
+ Date.civil(2007,5,28) => 'Lundi de Pentecôte',
64
+ Date.civil(2007,7,14) => 'Fête nationale',
65
+ Date.civil(2007,8,15) => 'Assomption',
66
+ Date.civil(2007,11,1) => 'Toussaint',
67
+ Date.civil(2007,11,11) => 'Armistice 1918',
68
+ Date.civil(2007,12,25) => 'Nöel'}.each do |date, name|
69
+ assert_equal name, (Holidays.on(date, :fr, :informal)[0] || {})[:name]
70
+ end
data/data/gb.yaml ADDED
@@ -0,0 +1,106 @@
1
+ # Great Britain/United Kingdom holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Including England, Wales, Scotland, N. Ireland, the Isle of Man, Guernsey
4
+ # and Jersey.
5
+ #
6
+ # Updated: 2008-11-28.
7
+ # Sources:
8
+ # - http://en.wikipedia.org/wiki/List_of_holidays_by_country#United_Kingdom_and_Crown_dependencies
9
+ #
10
+ # Notes:
11
+ # - Jersey, Guernsey and the Isle of Man are encode with both their ISO 3166-1 and ISO 3-3166-2 codes.
12
+ # - England and Wales together should be encoded as [gb_eng, gb_wls, gb_eaw...]
13
+ ---
14
+ months:
15
+ 0:
16
+ - name: Good Friday
17
+ regions: [gb]
18
+ function: easter(year)-2
19
+ - name: Easter Sunday
20
+ regions: [gb]
21
+ function: easter(year)
22
+ - name: Easter Monday
23
+ regions: [gb_eng, gb_wls, gb_eaw, gb_nir]
24
+ function: easter(year)+1
25
+ 1:
26
+ - name: New Year's Day
27
+ regions: [gb]
28
+ mday: 1
29
+ - name: New Year's
30
+ regions: [gb_sct]
31
+ mday: 2
32
+ 3:
33
+ - name: St. Piran's Day
34
+ regions: [gb_con]
35
+ mday: 5
36
+ - name: St. Patrick's Day
37
+ regions: [gb_nir]
38
+ mday: 17
39
+ 5:
40
+ - name: May Day
41
+ regions: [gb]
42
+ week: 1
43
+ wday: 1
44
+ - name: Liberation Day
45
+ regions: [je, gb_jsy, gg, gb_gsy]
46
+ mday: 9
47
+ - name: Bank Holiday
48
+ regions: [gb]
49
+ week: -1
50
+ wday: 1
51
+ 7:
52
+ - name: Tynwald Day
53
+ regions: [im, gb_iom]
54
+ mday: 5
55
+ - name: Battle of the Boyne
56
+ regions: [gb_nir]
57
+ mday: 12
58
+ 8:
59
+ - name: Bank Holiday
60
+ regions: [gb_sct]
61
+ week: 1
62
+ wday: 1
63
+ - name: Bank Holiday
64
+ regions: [gb_eng, gb_wls, gb_eaw, gb_nir]
65
+ week: -1
66
+ wday: 1
67
+ 11:
68
+ - name: Guy Fawkes Day
69
+ regions: [gb]
70
+ mday: 5
71
+ type: informal
72
+ 12:
73
+ - name: Christmas Day
74
+ regions: [gb]
75
+ mday: 25
76
+ observed: to_monday_if_weekend
77
+ - name: Boxing Day
78
+ regions: [gb]
79
+ mday: 26
80
+ observed: to_weekday_if_boxing_weekend
81
+ tests: |
82
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
83
+ Date.civil(2008,3,21) => 'Good Friday',
84
+ Date.civil(2008,3,23) => 'Easter Sunday',
85
+ Date.civil(2008,5,5) => 'May Day',
86
+ Date.civil(2008,5,26) => 'Bank Holiday',
87
+ Date.civil(2008,11,5) => 'Guy Fawkes Day',
88
+ Date.civil(2008,12,25) => 'Christmas Day',
89
+ Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
90
+ assert_equal name, (Holidays.on(date, :gb, :informal)[0] || {})[:name]
91
+ end
92
+
93
+ assert_equal 'St. Patrick\'s Day', Date.civil(2008,3,17).holidays(:gb_nir, :informal)[0][:name]
94
+
95
+ assert_equal 'Christmas Day', Date.civil(2008,12,25).holidays(:gb_, :observed)[0][:name]
96
+ assert_equal 'Christmas Day', Date.civil(2009,12,25).holidays(:gb_, :observed)[0][:name]
97
+ assert_equal 'Christmas Day', Date.civil(2010,12,27).holidays(:gb_, :observed)[0][:name]
98
+
99
+ assert_equal 'Boxing Day', Date.civil(2008,12,26).holidays(:gb_, :observed)[0][:name]
100
+ assert_equal 'Boxing Day', Date.civil(2009,12,28).holidays(:gb_, :observed)[0][:name]
101
+ assert_equal 'Boxing Day', Date.civil(2010,12,28).holidays(:gb_, :observed)[0][:name]
102
+
103
+ [:gb_wls, :gb_eng, :gb_nir, :gb_eaw, :gb_].each do |r|
104
+ assert_equal 'Easter Monday', Date.civil(2008,3,24).holidays(r)[0][:name]
105
+ assert_equal 'Bank Holiday', Date.civil(2008,8,25).holidays(r)[0][:name]
106
+ end
data/data/ie.yaml ADDED
@@ -0,0 +1,58 @@
1
+ # Ireland holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # Updated: 2008-11-28.
4
+ # Sources:
5
+ # - http://en.wikipedia.org/wiki/Public_holidays_in_the_Republic_of_Ireland
6
+ # - http://www.citizensinformation.ie/categories/employment/employment-rights-and-conditions/leave-and-holidays/public-holidays-in-ireland
7
+ ---
8
+ months:
9
+ 0:
10
+ - name: Easter Monday
11
+ regions: [ie]
12
+ function: easter(year)+1
13
+ 1:
14
+ - name: New Year's Day
15
+ regions: [ie]
16
+ mday: 1
17
+ 3:
18
+ - name: St. Patrick's Day
19
+ regions: [ie]
20
+ mday: 17
21
+ 5:
22
+ - name: May Day
23
+ regions: [ie]
24
+ week: 1
25
+ wday: 1
26
+ 6:
27
+ - name: Bank Holiday
28
+ regions: [ie]
29
+ week: 1
30
+ wday: 1
31
+ 8:
32
+ - name: Bank Holiday
33
+ regions: [ie]
34
+ week: 1
35
+ wday: 1
36
+ 10:
37
+ - name: Bank Holiday
38
+ regions: [ie]
39
+ week: -1
40
+ wday: 1
41
+ 12:
42
+ - name: Christmas Day
43
+ regions: [ie]
44
+ mday: 25
45
+ - name: St. Stephen's Day
46
+ regions: [ie]
47
+ mday: 26
48
+ tests: |
49
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
50
+ Date.civil(2008,3,17) => 'St. Patrick\'s Day',
51
+ Date.civil(2008,3,24) => 'Easter Monday',
52
+ Date.civil(2008,5,5) => 'May Day',
53
+ Date.civil(2008,6,2) => 'Bank Holiday',
54
+ Date.civil(2008,8,4) => 'Bank Holiday',
55
+ Date.civil(2008,12,25) => 'Christmas Day',
56
+ Date.civil(2008,12,26) => 'St. Stephen\'s Day'}.each do |date, name|
57
+ assert_equal name, (Holidays.on(date, :ie, :informal)[0] || {})[:name]
58
+ end