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
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/fr.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/fr'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module FR # :nodoc:
15
+ DEFINED_REGIONS = [:fr]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Fête du travail", :regions => [:fr]},
19
+ {:mday => 8, :name => "Victoire 1945", :regions => [:fr]}],
20
+ 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
21
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lundi de Pâques", :regions => [:fr]},
22
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:fr]},
23
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecôte", :regions => [:fr]},
24
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Lundi de Pentecôte", :regions => [:fr]}],
25
+ 11 => [{:mday => 1, :name => "Toussaint", :regions => [:fr]},
26
+ {:mday => 11, :name => "Armistice 1918", :regions => [:fr]}],
27
+ 1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:fr]}],
28
+ 12 => [{:mday => 25, :name => "Nöel", :regions => [:fr]}],
29
+ 7 => [{:mday => 14, :name => "Fête nationale", :regions => [:fr]}],
30
+ 8 => [{:mday => 15, :name => "Assomption", :regions => [:fr]}]
31
+ }
32
+ end
33
+
34
+
35
+ end
36
+
37
+ Holidays.merge_defs(Holidays::FR::DEFINED_REGIONS, Holidays::FR::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/gb.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/gb'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module GB # :nodoc:
15
+ DEFINED_REGIONS = [:gb, :je, :gb_jsy, :gg, :gb_gsy, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :im, :gb_iom, :gb_con]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
19
+ {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
20
+ {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:gb]},
22
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:gb]},
23
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
24
+ 11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]}],
25
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:gb]},
26
+ {:mday => 2, :name => "New Year's", :regions => [:gb_sct]}],
27
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb]},
28
+ {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:gb]}],
29
+ 7 => [{:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
30
+ {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}],
31
+ 8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
32
+ {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
33
+ 3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
34
+ {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]}]
35
+ }
36
+ end
37
+
38
+
39
+ end
40
+
41
+ Holidays.merge_defs(Holidays::GB::DEFINED_REGIONS, Holidays::GB::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/ie.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/ie'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module IE # :nodoc:
15
+ DEFINED_REGIONS = [:ie]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:ie]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:ie]}],
20
+ 6 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
21
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ie]}],
22
+ 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ie]},
23
+ {:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]}],
24
+ 8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
25
+ 3 => [{:mday => 17, :name => "St. Patrick's Day", :regions => [:ie]}],
26
+ 10 => [{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]}]
27
+ }
28
+ end
29
+
30
+
31
+ end
32
+
33
+ Holidays.merge_defs(Holidays::IE::DEFINED_REGIONS, Holidays::IE::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,62 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/is.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/is'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module IS # :nodoc:
15
+ DEFINED_REGIONS = [:is]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
19
+ {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]}],
20
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
21
+ {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
22
+ {:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
23
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Pálmasunnudagur", :regions => [:is]},
24
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skírdagur", :regions => [:is]},
25
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Föstudaginn langi", :regions => [:is]},
26
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páskadagur", :regions => [:is]},
27
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annar í páskum", :regions => [:is]},
28
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Uppstigningardagur", :regions => [:is]},
29
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Hvítasunnudagur", :regions => [:is]},
30
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Annar í hvítasunnu", :regions => [:is]}],
31
+ 11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
32
+ 6 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
33
+ {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}],
34
+ 1 => [{:mday => 1, :name => "Nýársdagur", :regions => [:is]},
35
+ {:mday => 6, :name => "Þrettándinn", :regions => [:is]},
36
+ {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]}],
37
+ 12 => [{:mday => 24, :name => "Jól", :regions => [:is]},
38
+ {:mday => 25, :name => "Jól", :regions => [:is]},
39
+ {:mday => 26, :name => "Jól", :regions => [:is]},
40
+ {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}],
41
+ 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
42
+ 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
43
+ 4 => [{:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}]
44
+ }
45
+ end
46
+
47
+ # Iceland: first day of summer (Thursday after 18 April)
48
+ def self.is_sumardagurinn_fyrsti(year)
49
+ date = Date.civil(year,4,18)
50
+ if date.wday < 4
51
+ date += (4 - date.wday)
52
+ else date
53
+ date += (11 - date.wday)
54
+ end
55
+ date
56
+ end
57
+
58
+
59
+
60
+ end
61
+
62
+ Holidays.merge_defs(Holidays::IS::DEFINED_REGIONS, Holidays::IS::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/it.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/it'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module IT # :nodoc:
15
+ DEFINED_REGIONS = [:it]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasqua", :regions => [:it]},
20
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lunedì dell'Angelo", :regions => [:it]}],
21
+ 11 => [{:mday => 1, :name => "Ognissanti", :regions => [:it]}],
22
+ 6 => [{:mday => 2, :name => "Festa della Repubblica", :regions => [:it]}],
23
+ 1 => [{:mday => 1, :name => "Capodanno", :regions => [:it]},
24
+ {:mday => 6, :name => "Epifania", :regions => [:it]}],
25
+ 12 => [{:mday => 8, :name => "Immacolata Concezione", :regions => [:it]},
26
+ {:mday => 25, :name => "Natale", :regions => [:it]},
27
+ {:mday => 26, :name => "Santo Stefano", :regions => [:it]}],
28
+ 8 => [{:mday => 15, :name => "Assunzione", :regions => [:it]}],
29
+ 4 => [{:mday => 25, :name => "Festa della Liberazione", :regions => [:it]}]
30
+ }
31
+ end
32
+
33
+
34
+ end
35
+
36
+ Holidays.merge_defs(Holidays::IT::DEFINED_REGIONS, Holidays::IT::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,52 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/mx.yaml, data/north_america_informal.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/mx'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module MX # :nodoc:
15
+ DEFINED_REGIONS = [:mx, :mx_pue, :us, :ca]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Día del Trabajo", :regions => [:mx]},
19
+ {:mday => 5, :type => :informal, :name => "Cinco de Mayo", :regions => [:mx]},
20
+ {:mday => 5, :name => "La Batalla de Puebla", :regions => [:mx_pue]},
21
+ {:mday => 10, :type => :informal, :name => "Día de la Madre", :regions => [:mx]},
22
+ {:mday => 15, :type => :informal, :name => "Día del Maestro", :regions => [:mx]},
23
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
24
+ 11 => [{:mday => 1, :type => :informal, :name => "Todos los Santos", :regions => [:mx]},
25
+ {:mday => 2, :type => :informal, :name => "Los Fieles Difuntos", :regions => [:mx]},
26
+ {:wday => 1, :week => 3, :name => "Día de la Revolución", :regions => [:mx]}],
27
+ 6 => [{:wday => 0, :week => 3, :type => :informal, :name => "Día del Padre", :regions => [:mx]}],
28
+ 1 => [{:mday => 1, :name => "Año nuevo", :regions => [:mx]},
29
+ {:mday => 6, :name => "Dia de los Santos Reyes", :regions => [:mx]}],
30
+ 12 => [{:mday => 12, :type => :informal, :name => "Día de la Virgen de Guadalupe", :regions => [:mx]},
31
+ {:mday => 24, :type => :informal, :name => "Nochebuena", :regions => [:mx]},
32
+ {:mday => 25, :name => "Navidad", :regions => [:mx]},
33
+ {:mday => 28, :name => "Los Santos Inocentes", :regions => [:mx]}],
34
+ 2 => [{:wday => 1, :week => 1, :name => "Día de la Constitución", :regions => [:mx]},
35
+ {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
36
+ {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
37
+ 3 => [{:wday => 1, :week => 3, :name => "Natalicio de Benito Juárez", :regions => [:mx]},
38
+ {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
39
+ 9 => [{:mday => 15, :name => "Grito de Dolores", :regions => [:mx]},
40
+ {:mday => 16, :name => "Día de la Independencia", :regions => [:mx]}],
41
+ 4 => [{:mday => 30, :type => :informal, :name => "Día del Niño", :regions => [:mx]},
42
+ {:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
43
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
44
+ 10 => [{:mday => 12, :type => :informal, :name => "Día de la Raza", :regions => [:mx]},
45
+ {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}]
46
+ }
47
+ end
48
+
49
+
50
+ end
51
+
52
+ Holidays.merge_defs(Holidays::MX::DEFINED_REGIONS, Holidays::MX::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/nl.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/nl'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module NL # :nodoc:
15
+ DEFINED_REGIONS = [:nl]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 4, :name => "Dodenherdenking", :regions => [:nl]},
19
+ {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]}],
20
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Goede Vrijdag", :regions => [:nl]},
21
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasen", :regions => [:nl]},
22
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Pasen", :regions => [:nl]},
23
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Hemelvaartsdag", :regions => [:nl]},
24
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pinksteren", :regions => [:nl]},
25
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pinksteren", :regions => [:nl]}],
26
+ 1 => [{:mday => 1, :name => "Nieuwjaar", :regions => [:nl]}],
27
+ 12 => [{:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
28
+ {:mday => 25, :name => "Kerstmis", :regions => [:nl]},
29
+ {:mday => 26, :name => "Kerstmis", :regions => [:nl]}],
30
+ 4 => [{:mday => 30, :name => "Koninginnedag", :regions => [:nl]}]
31
+ }
32
+ end
33
+
34
+
35
+ end
36
+
37
+ Holidays.merge_defs(Holidays::NL::DEFINED_REGIONS, Holidays::NL::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,40 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/no.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/no'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module NO # :nodoc:
15
+ DEFINED_REGIONS = [:no]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "1. mai", :regions => [:no]},
19
+ {:mday => 17, :name => "17. mai", :regions => [:no]}],
20
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-49 }, :function_id => "easter(year)-49", :type => :informal, :name => "Fastelavn", :regions => [:no]},
21
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Palmesøndag", :regions => [:no]},
22
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skjærtorsdag", :regions => [:no]},
23
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Langfredag", :regions => [:no]},
24
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "1. påskedag", :regions => [:no]},
25
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. påskedag", :regions => [:no]},
26
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi Himmelfartsdag", :regions => [:no]},
27
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "1. pinsedag", :regions => [:no]},
28
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "2. pinsedag", :regions => [:no]}],
29
+ 1 => [{:mday => 1, :name => "Nyttårsdag", :regions => [:no]}],
30
+ 12 => [{:mday => 24, :type => :informal, :name => "Julaften", :regions => [:no]},
31
+ {:mday => 25, :name => "1. juledag", :regions => [:no]},
32
+ {:mday => 26, :name => "2. juledag", :regions => [:no]},
33
+ {:mday => 31, :type => :informal, :name => "Nyttårsaften", :regions => [:no]}]
34
+ }
35
+ end
36
+
37
+
38
+ end
39
+
40
+ Holidays.merge_defs(Holidays::NO::DEFINED_REGIONS, Holidays::NO::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,108 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/ca.yaml, data/mx.yaml, data/us.yaml, data/north_america_informal.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/north_america'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module North_America # :nodoc:
15
+ DEFINED_REGIONS = [:ca, :ca_qc, :ca_nf, :ca_nt, :ca_nu, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_bc, :ca_ns, :ca_yk, :mx, :mx_pue, :us, :us_dc]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "Victoria Day", :regions => [:ca]},
19
+ {:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "National Patriotes Day", :regions => [:ca_qc]},
20
+ {:mday => 1, :name => "Día del Trabajo", :regions => [:mx]},
21
+ {:mday => 5, :type => :informal, :name => "Cinco de Mayo", :regions => [:mx]},
22
+ {:mday => 5, :name => "La Batalla de Puebla", :regions => [:mx_pue]},
23
+ {:mday => 10, :type => :informal, :name => "Día de la Madre", :regions => [:mx]},
24
+ {:mday => 15, :type => :informal, :name => "Día del Maestro", :regions => [:mx]},
25
+ {:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
26
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
27
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:ca]},
28
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :type => :informal, :name => "Easter Monday", :regions => [:ca]},
29
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :type => :informal, :name => "Good Friday", :regions => [:us]}],
30
+ 11 => [{:mday => 11, :name => "Rememberance Day", :regions => [:ca]},
31
+ {:mday => 1, :type => :informal, :name => "Todos los Santos", :regions => [:mx]},
32
+ {:mday => 2, :type => :informal, :name => "Los Fieles Difuntos", :regions => [:mx]},
33
+ {:wday => 1, :week => 3, :name => "Día de la Revolución", :regions => [:mx]},
34
+ {:mday => 11, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Veterans Day", :regions => [:us]},
35
+ {:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:us]}],
36
+ 6 => [{:mday => 24, :name => "Discovery Day", :regions => [:ca_nf]},
37
+ {:mday => 24, :name => "Fête Nationale", :regions => [:ca_qc]},
38
+ {:mday => 21, :name => "National Aboriginal Day", :regions => [:ca_nt]},
39
+ {:wday => 0, :week => 3, :type => :informal, :name => "Día del Padre", :regions => [:mx]}],
40
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ca]},
41
+ {:mday => 2, :name => "New Year's", :regions => [:ca_qc]},
42
+ {:mday => 1, :name => "Año nuevo", :regions => [:mx]},
43
+ {:mday => 6, :name => "Dia de los Santos Reyes", :regions => [:mx]},
44
+ {:mday => 1, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "New Year's Day", :regions => [:us]},
45
+ {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:us]},
46
+ {:function => lambda { |year| Holidays.us_inauguration_day(year) }, :function_id => "us_inauguration_day(year)", :name => "Inauguration Day", :regions => [:us_dc]}],
47
+ 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ca]},
48
+ {:mday => 26, :name => "Boxing Day", :regions => [:ca]},
49
+ {:mday => 12, :type => :informal, :name => "Día de la Virgen de Guadalupe", :regions => [:mx]},
50
+ {:mday => 24, :type => :informal, :name => "Nochebuena", :regions => [:mx]},
51
+ {:mday => 25, :name => "Navidad", :regions => [:mx]},
52
+ {:mday => 28, :name => "Los Santos Inocentes", :regions => [:mx]},
53
+ {:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:us]}],
54
+ 7 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Canada Day", :regions => [:ca]},
55
+ {:mday => 12, :name => "Orangemen's Day", :regions => [:ca_nf]},
56
+ {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]},
57
+ {:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:us]}],
58
+ 2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]},
59
+ {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]},
60
+ {:wday => 1, :week => 1, :name => "Día de la Constitución", :regions => [:mx]},
61
+ {:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]},
62
+ {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
63
+ {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
64
+ 8 => [{:wday => 1, :week => 1, :name => "BC Day", :regions => [:ca_bc]},
65
+ {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]},
66
+ {:wday => 1, :week => 1, :name => "Heritage Day", :regions => [:ca_ab]},
67
+ {:wday => 1, :week => 1, :name => "Natal Day", :regions => [:ca_ns]},
68
+ {:wday => 1, :week => 1, :name => "Civic Holiday", :regions => [:ca_on]},
69
+ {:wday => 1, :week => 3, :name => "Discovery Day", :regions => [:ca_yk]}],
70
+ 3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]},
71
+ {:wday => 1, :week => 3, :name => "Natalicio de Benito Juárez", :regions => [:mx]},
72
+ {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
73
+ 9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]},
74
+ {:mday => 15, :name => "Grito de Dolores", :regions => [:mx]},
75
+ {:mday => 16, :name => "Día de la Independencia", :regions => [:mx]},
76
+ {:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}],
77
+ 4 => [{:mday => 30, :type => :informal, :name => "Día del Niño", :regions => [:mx]},
78
+ {:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
79
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
80
+ 10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca]},
81
+ {:mday => 12, :type => :informal, :name => "Día de la Raza", :regions => [:mx]},
82
+ {:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]},
83
+ {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}]
84
+ }
85
+ end
86
+
87
+ # Monday on or before May 24
88
+ def self.ca_victoria_day(year)
89
+ date = Date.civil(year,5,24)
90
+ if date.wday > 1
91
+ date -= (date.wday - 1)
92
+ elsif date.wday == 0
93
+ date -= 6
94
+ end
95
+ date
96
+ end
97
+
98
+
99
+ # January 20, every fourth year, following Presidential election
100
+ def self.us_inauguration_day(year)
101
+ year % 4 == 1 ? 20 : nil
102
+ end
103
+
104
+
105
+
106
+ end
107
+
108
+ Holidays.merge_defs(Holidays::North_America::DEFINED_REGIONS, Holidays::North_America::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/nyse.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/nyse'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module NYSE # :nodoc:
15
+ DEFINED_REGIONS = [:nyse]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:nyse]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:nyse]}],
20
+ 11 => [{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:nyse]}],
21
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:nyse]},
22
+ {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:nyse]}],
23
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:nyse]}],
24
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:nyse]}],
25
+ 2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:nyse]}],
26
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:nyse]}]
27
+ }
28
+ end
29
+
30
+
31
+ end
32
+
33
+ Holidays.merge_defs(Holidays::NYSE::DEFINED_REGIONS, Holidays::NYSE::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,69 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/nz.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/nz'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module NZ # :nodoc:
15
+ DEFINED_REGIONS = [:nz_ca, :nz_ch, :nz, :nz_wl, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ot, :nz_sc, :nz_hb, :nz_mb]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:nz]},
19
+ {:function => lambda { |year| Holidays.easter(year)-1 }, :function_id => "easter(year)-1", :name => "Easter Saturday", :regions => [:nz]},
20
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:nz]}],
21
+ 11 => [{:wday => 5, :week => 2, :name => "Canterbury Anniversary Day", :regions => [:nz_ca]},
22
+ {:mday => 30, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Chatham Island Anniversary Day", :regions => [:nz_ch]}],
23
+ 6 => [{:wday => 1, :week => 1, :name => "Queen's Birthday", :regions => [:nz]}],
24
+ 1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "New Year's Day", :regions => [:nz]},
25
+ {:mday => 2, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Day after New Year's Day", :regions => [:nz]},
26
+ {:mday => 17, :name => "Southland Anniversary Day", :regions => [:nz_sl]},
27
+ {:mday => 22, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Wellington Anniversary Day", :regions => [:nz_we]},
28
+ {:mday => 29, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Auckland Anniversary Day", :regions => [:nz_ak]},
29
+ {:mday => 29, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Northland Anniversary Day", :regions => [:nz_nl]}],
30
+ 12 => [{:mday => 1, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Westland Anniversary Day", :regions => [:nz_wl]},
31
+ {:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:nz]},
32
+ {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:nz]}],
33
+ 2 => [{:mday => 1, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Nelson Anniversary Day", :regions => [:nz_ak]},
34
+ {:mday => 6, :name => "Waitangi Day", :regions => [:nz]}],
35
+ 3 => [{:mday => 23, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Otago Anniversary Day", :regions => [:nz_ot]},
36
+ {:wday => 1, :week => 2, :name => "Taranaki Anniversary Day", :regions => [:nz_ak]}],
37
+ 9 => [{:wday => 1, :week => 4, :name => "Dominion Day", :regions => [:nz_sc]}],
38
+ 4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:nz]}],
39
+ 10 => [{:wday => 1, :week => 1, :observed => lambda { |date| Holidays.previous_friday(date) }, :observed_id => "previous_friday", :name => "Hawke's bay Anniversary Day", :regions => [:nz_hb]},
40
+ {:wday => 1, :week => 4, :name => "Labour Day", :regions => [:nz]},
41
+ {:wday => 1, :week => 4, :observed => lambda { |date| Holidays.next_week(date) }, :observed_id => "next_week", :name => "Marlborough Anniversary Day", :regions => [:nz_mb]}]
42
+ }
43
+ end
44
+
45
+ def self.closest_monday(date)
46
+ if [1, 2, 3, 4].include?(date.wday)
47
+ date -= (date.wday - 1)
48
+ elsif 0 == date.wday
49
+ date += 1
50
+ else
51
+ date += 8 - date.wday
52
+ end
53
+ date
54
+ end
55
+
56
+
57
+ def self.next_week(date)
58
+ date + 7
59
+ end
60
+
61
+ def self.previous_friday(date)
62
+ date - 3
63
+ end
64
+
65
+
66
+
67
+ end
68
+
69
+ Holidays.merge_defs(Holidays::NZ::DEFINED_REGIONS, Holidays::NZ::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/pt.yaml
6
+ #
7
+ # To use the definitions in this file, load them right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/pt'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module PT # :nodoc:
15
+ DEFINED_REGIONS = [:pt]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:pt]},
20
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:pt]},
21
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]},
22
+ {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpo de Deus", :regions => [:pt]}],
23
+ 11 => [{:mday => 1, :name => "Todos os Santos", :regions => [:pt]}],
24
+ 6 => [{:mday => 10, :name => "Dia de Portugal", :regions => [:pt]}],
25
+ 1 => [{:mday => 1, :name => "Ano Novo", :regions => [:pt]}],
26
+ 12 => [{:mday => 1, :name => "Restauração da Independência", :regions => [:pt]},
27
+ {:mday => 8, :name => "Imaculada Conceição", :regions => [:pt]},
28
+ {:mday => 25, :name => "Natal", :regions => [:pt]}],
29
+ 8 => [{:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]}],
30
+ 4 => [{:mday => 25, :name => "Dia da Liberdade", :regions => [:pt]}],
31
+ 10 => [{:mday => 5, :name => "Implantação da República", :regions => [:pt]}]
32
+ }
33
+ end
34
+
35
+
36
+ end
37
+
38
+ Holidays.merge_defs(Holidays::PT::DEFINED_REGIONS, Holidays::PT::HOLIDAYS_BY_MONTH)