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,115 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/dk.yaml, data/is.yaml, data/se.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/scandinavia'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module SCANDINAVIA # :nodoc:
15
+ DEFINED_REGIONS = [:dk, :is, :se]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Arbejdernes kampdag", :regions => [:dk]},
19
+ {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
20
+ {:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
21
+ {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
22
+ {:mday => 1, :name => "Första maj", :regions => [:se]}],
23
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-49 }, :function_id => "easter(year)-49", :type => :informal, :name => "Fastelavn", :regions => [:dk]},
24
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Palmesøndag", :regions => [:dk]},
25
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skærtorsdag", :regions => [:dk]},
26
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Langfredag", :regions => [:dk]},
27
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskedag", :regions => [:dk]},
28
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. påskedag", :regions => [:dk]},
29
+ {:function => lambda { |year| Holidays.easter(year)+26 }, :function_id => "easter(year)+26", :name => "Store Bededag", :regions => [:dk]},
30
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi Himmelfartsdag", :regions => [:dk]},
31
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pinsedag", :regions => [:dk]},
32
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "2. Pinsedag", :regions => [:dk]},
33
+ {:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
34
+ {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
35
+ {:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
36
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Pálmasunnudagur", :regions => [:is]},
37
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skírdagur", :regions => [:is]},
38
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Föstudaginn langi", :regions => [:is]},
39
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páskadagur", :regions => [:is]},
40
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annar í páskum", :regions => [:is]},
41
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Uppstigningardagur", :regions => [:is]},
42
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Hvítasunnudagur", :regions => [:is]},
43
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Annar í hvítasunnu", :regions => [:is]},
44
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Långfredagen", :regions => [:se]},
45
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskdagen", :regions => [:se]},
46
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annandag påsk", :regions => [:se]},
47
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi himmelsfärdsdag", :regions => [:se]},
48
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pingstdagen", :regions => [:se]},
49
+ {:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]}],
50
+ 11 => [{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
51
+ {:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
52
+ 6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]},
53
+ {:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]},
54
+ {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
55
+ {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
56
+ {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
57
+ {:mday => 6, :name => "Nationaldagen", :regions => [:se]},
58
+ {:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]}],
59
+ 1 => [{:mday => 1, :name => "Nytårsdag", :regions => [:dk]},
60
+ {:mday => 1, :name => "Nýársdagur", :regions => [:is]},
61
+ {:mday => 6, :name => "Þrettándinn", :regions => [:is]},
62
+ {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]},
63
+ {:mday => 1, :name => "Nyårsdagen", :regions => [:se]},
64
+ {:mday => 6, :name => "Trettondedag jul", :regions => [:se]}],
65
+ 12 => [{:mday => 13, :type => :informal, :name => "Sankt Lucia", :regions => [:dk]},
66
+ {:mday => 24, :name => "Juleaftensdag", :regions => [:dk]},
67
+ {:mday => 25, :name => "1. juledag", :regions => [:dk]},
68
+ {:mday => 26, :name => "2. juledag", :regions => [:dk]},
69
+ {:mday => 24, :name => "Jól", :regions => [:is]},
70
+ {:mday => 25, :name => "Jól", :regions => [:is]},
71
+ {:mday => 26, :name => "Jól", :regions => [:is]},
72
+ {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]},
73
+ {:mday => 25, :name => "Juldagen", :regions => [:se]},
74
+ {:mday => 26, :name => "Annandag jul", :regions => [:se]}],
75
+ 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
76
+ 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
77
+ 4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
78
+ {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]},
79
+ {:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]},
80
+ {:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}]
81
+ }
82
+ end
83
+
84
+ # Iceland: first day of summer (Thursday after 18 April)
85
+ def self.is_sumardagurinn_fyrsti(year)
86
+ date = Date.civil(year,4,18)
87
+ if date.wday < 4
88
+ date += (4 - date.wday)
89
+ else date
90
+ date += (11 - date.wday)
91
+ end
92
+ date
93
+ end
94
+
95
+
96
+ # Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
97
+ def self.se_alla_helgons_dag(year)
98
+ date = Date.civil(year,10,31)
99
+ date += (6 - date.wday)
100
+ date
101
+ end
102
+
103
+
104
+ # Sweden: Mid-summer (Saturday between June 20–26)
105
+ def self.se_midsommardagen(year)
106
+ date = Date.civil(year,6,20)
107
+ date += (6 - date.wday)
108
+ date
109
+ end
110
+
111
+
112
+
113
+ end
114
+
115
+ Holidays.merge_defs(Holidays::SCANDINAVIA::DEFINED_REGIONS, Holidays::SCANDINAVIA::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,53 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/se.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/se'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module SE # :nodoc:
15
+ DEFINED_REGIONS = [:se]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :name => "Första maj", :regions => [:se]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Långfredagen", :regions => [:se]},
20
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskdagen", :regions => [:se]},
21
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annandag påsk", :regions => [:se]},
22
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi himmelsfärdsdag", :regions => [:se]},
23
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pingstdagen", :regions => [:se]},
24
+ {:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]}],
25
+ 6 => [{:mday => 6, :name => "Nationaldagen", :regions => [:se]},
26
+ {:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]}],
27
+ 1 => [{:mday => 1, :name => "Nyårsdagen", :regions => [:se]},
28
+ {:mday => 6, :name => "Trettondedag jul", :regions => [:se]}],
29
+ 12 => [{:mday => 25, :name => "Juldagen", :regions => [:se]},
30
+ {:mday => 26, :name => "Annandag jul", :regions => [:se]}]
31
+ }
32
+ end
33
+
34
+ # Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
35
+ def self.se_alla_helgons_dag(year)
36
+ date = Date.civil(year,10,31)
37
+ date += (6 - date.wday)
38
+ date
39
+ end
40
+
41
+
42
+ # Sweden: Mid-summer (Saturday between June 20–26)
43
+ def self.se_midsommardagen(year)
44
+ date = Date.civil(year,6,20)
45
+ date += (6 - date.wday)
46
+ date
47
+ end
48
+
49
+
50
+
51
+ end
52
+
53
+ Holidays.merge_defs(Holidays::SE::DEFINED_REGIONS, Holidays::SE::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/united_nations.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/united_nations'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module United_Nations # :nodoc:
15
+ DEFINED_REGIONS = [:]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+
19
+ }
20
+ end
21
+
22
+
23
+ end
24
+
25
+ Holidays.merge_defs(Holidays::United_Nations::DEFINED_REGIONS, Holidays::United_Nations::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/ups.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/ups'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module UPS # :nodoc:
15
+ DEFINED_REGIONS = [:ups]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:ups]}],
19
+ 11 => [{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:ups]},
20
+ {:wday => 5, :week => 4, :name => "Day After Thanksgiving", :regions => [:ups]}],
21
+ 1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "New Year's Day", :regions => [:ups]}],
22
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:ups]},
23
+ {:mday => 31, :name => "New Year's Eve", :regions => [:ups]}],
24
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:ups]}],
25
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:ups]}]
26
+ }
27
+ end
28
+
29
+
30
+ end
31
+
32
+ Holidays.merge_defs(Holidays::UPS::DEFINED_REGIONS, Holidays::UPS::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,49 @@
1
+ # coding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: 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/us'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module US # :nodoc:
15
+ DEFINED_REGIONS = [:us, :us_dc, :ca]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
19
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
20
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :type => :informal, :name => "Good Friday", :regions => [:us]}],
21
+ 11 => [{:mday => 11, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Veterans Day", :regions => [:us]},
22
+ {:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:us]}],
23
+ 1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "New Year's Day", :regions => [:us]},
24
+ {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:us]},
25
+ {:function => lambda { |year| Holidays.us_inauguration_day(year) }, :function_id => "us_inauguration_day(year)", :name => "Inauguration Day", :regions => [:us_dc]}],
26
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:us]}],
27
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:us]}],
28
+ 2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]},
29
+ {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
30
+ {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
31
+ 3 => [{:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
32
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}],
33
+ 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
34
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
35
+ 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]},
36
+ {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}]
37
+ }
38
+ end
39
+
40
+ # January 20, every fourth year, following Presidential election
41
+ def self.us_inauguration_day(year)
42
+ year % 4 == 1 ? 20 : nil
43
+ end
44
+
45
+
46
+
47
+ end
48
+
49
+ Holidays.merge_defs(Holidays::US::DEFINED_REGIONS, Holidays::US::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/za.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/za'
12
+ #
13
+ # More definitions are available at http://code.dunae.ca/holidays.
14
+ module ZA # :nodoc:
15
+ DEFINED_REGIONS = [:za]
16
+
17
+ HOLIDAYS_BY_MONTH = {
18
+ 5 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Workers Day", :regions => [:za]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:za]},
20
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Family Day", :regions => [:za]}],
21
+ 6 => [{:mday => 16, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Youth Day", :regions => [:za]}],
22
+ 1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "New Year's Day", :regions => [:za]}],
23
+ 12 => [{:mday => 16, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Day of Reconciliation", :regions => [:za]},
24
+ {:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Christmas Day", :regions => [:za]},
25
+ {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Day of Goodwill", :regions => [:za]}],
26
+ 8 => [{:mday => 9, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "National Women's Day", :regions => [:za]}],
27
+ 3 => [{:mday => 21, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Human Rights Day", :regions => [:za]}],
28
+ 9 => [{:mday => 24, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Heritage Day", :regions => [:za]}],
29
+ 4 => [{:mday => 27, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Freedom Day", :regions => [:za]}]
30
+ }
31
+ end
32
+
33
+
34
+ end
35
+
36
+ Holidays.merge_defs(Holidays::ZA::DEFINED_REGIONS, Holidays::ZA::HOLIDAYS_BY_MONTH)