wombleton-holidays 0.9.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 (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