alexdunae-holidays 0.9.4

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 (77) hide show
  1. data/CHANGELOG +15 -0
  2. data/LICENSE +21 -0
  3. data/README.rdoc +77 -0
  4. data/REFERENCES +16 -0
  5. data/data/SYNTAX +111 -0
  6. data/data/au.yaml +106 -0
  7. data/data/build_defs.rb +152 -0
  8. data/data/ca.yaml +141 -0
  9. data/data/de.yaml +115 -0
  10. data/data/dk.yaml +117 -0
  11. data/data/es.yaml +161 -0
  12. data/data/fr.yaml +70 -0
  13. data/data/gb.yaml +106 -0
  14. data/data/ie.yaml +58 -0
  15. data/data/index.yaml +23 -0
  16. data/data/is.yaml +136 -0
  17. data/data/it.yaml +66 -0
  18. data/data/mx.yaml +106 -0
  19. data/data/nl.yaml +67 -0
  20. data/data/north_america_informal.yaml +49 -0
  21. data/data/nyse.yaml +63 -0
  22. data/data/pt.yaml +85 -0
  23. data/data/se.yaml +91 -0
  24. data/data/united_nations.yaml +188 -0
  25. data/data/ups.yaml +56 -0
  26. data/data/us.yaml +81 -0
  27. data/data/za.yaml +78 -0
  28. data/lib/holidays.rb +404 -0
  29. data/lib/holidays/MANIFEST +25 -0
  30. data/lib/holidays/au.rb +41 -0
  31. data/lib/holidays/ca.rb +68 -0
  32. data/lib/holidays/de.rb +52 -0
  33. data/lib/holidays/dk.rb +47 -0
  34. data/lib/holidays/es.rb +52 -0
  35. data/lib/holidays/europe.rb +215 -0
  36. data/lib/holidays/fr.rb +36 -0
  37. data/lib/holidays/gb.rb +40 -0
  38. data/lib/holidays/ie.rb +32 -0
  39. data/lib/holidays/is.rb +61 -0
  40. data/lib/holidays/it.rb +35 -0
  41. data/lib/holidays/mx.rb +51 -0
  42. data/lib/holidays/nl.rb +36 -0
  43. data/lib/holidays/north_america.rb +107 -0
  44. data/lib/holidays/nyse.rb +32 -0
  45. data/lib/holidays/pt.rb +37 -0
  46. data/lib/holidays/scandinavia.rb +114 -0
  47. data/lib/holidays/se.rb +52 -0
  48. data/lib/holidays/united_nations.rb +24 -0
  49. data/lib/holidays/ups.rb +31 -0
  50. data/lib/holidays/us.rb +48 -0
  51. data/lib/holidays/za.rb +35 -0
  52. data/test/defs/test_defs_au.rb +36 -0
  53. data/test/defs/test_defs_ca.rb +29 -0
  54. data/test/defs/test_defs_de.rb +46 -0
  55. data/test/defs/test_defs_dk.rb +30 -0
  56. data/test/defs/test_defs_es.rb +57 -0
  57. data/test/defs/test_defs_europe.rb +240 -0
  58. data/test/defs/test_defs_fr.rb +26 -0
  59. data/test/defs/test_defs_gb.rb +36 -0
  60. data/test/defs/test_defs_ie.rb +21 -0
  61. data/test/defs/test_defs_is.rb +33 -0
  62. data/test/defs/test_defs_it.rb +25 -0
  63. data/test/defs/test_defs_mx.rb +22 -0
  64. data/test/defs/test_defs_nl.rb +24 -0
  65. data/test/defs/test_defs_north_america.rb +54 -0
  66. data/test/defs/test_defs_nyse.rb +22 -0
  67. data/test/defs/test_defs_pt.rb +32 -0
  68. data/test/defs/test_defs_scandinavia.rb +75 -0
  69. data/test/defs/test_defs_se.rb +32 -0
  70. data/test/defs/test_defs_ups.rb +21 -0
  71. data/test/defs/test_defs_us.rb +23 -0
  72. data/test/defs/test_defs_za.rb +25 -0
  73. data/test/test_date.rb +87 -0
  74. data/test/test_helper.rb +11 -0
  75. data/test/test_holidays.rb +117 -0
  76. data/test/test_multiple_regions.rb +20 -0
  77. metadata +164 -0
@@ -0,0 +1,114 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/dk.yaml, data/is.yaml, data/se.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/scandinavia'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module SCANDINAVIA # :nodoc:
14
+ DEFINED_REGIONS = [:dk, :is, :se]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:mday => 1, :name => "Arbejdernes kampdag", :regions => [:dk]},
18
+ {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
19
+ {:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
20
+ {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
21
+ {:mday => 1, :name => "Första maj", :regions => [:se]}],
22
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-49 }, :function_id => "easter(year)-49", :type => :informal, :name => "Fastelavn", :regions => [:dk]},
23
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Palmesøndag", :regions => [:dk]},
24
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skærtorsdag", :regions => [:dk]},
25
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Langfredag", :regions => [:dk]},
26
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskedag", :regions => [:dk]},
27
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. påskedag", :regions => [:dk]},
28
+ {:function => lambda { |year| Holidays.easter(year)+26 }, :function_id => "easter(year)+26", :name => "Store Bededag", :regions => [:dk]},
29
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi Himmelfartsdag", :regions => [:dk]},
30
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pinsedag", :regions => [:dk]},
31
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "2. Pinsedag", :regions => [:dk]},
32
+ {:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
33
+ {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
34
+ {:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
35
+ {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Pálmasunnudagur", :regions => [:is]},
36
+ {:function => lambda { |year| Holidays.easter(year)-3 }, :function_id => "easter(year)-3", :name => "Skírdagur", :regions => [:is]},
37
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Föstudaginn langi", :regions => [:is]},
38
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páskadagur", :regions => [:is]},
39
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annar í páskum", :regions => [:is]},
40
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Uppstigningardagur", :regions => [:is]},
41
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Hvítasunnudagur", :regions => [:is]},
42
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Annar í hvítasunnu", :regions => [:is]},
43
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Långfredagen", :regions => [:se]},
44
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskdagen", :regions => [:se]},
45
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annandag påsk", :regions => [:se]},
46
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi himmelsfärdsdag", :regions => [:se]},
47
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pingstdagen", :regions => [:se]},
48
+ {:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]}],
49
+ 11 => [{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
50
+ {:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
51
+ 6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]},
52
+ {:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]},
53
+ {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
54
+ {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
55
+ {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
56
+ {:mday => 6, :name => "Nationaldagen", :regions => [:se]},
57
+ {:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]}],
58
+ 1 => [{:mday => 1, :name => "Nytårsdag", :regions => [:dk]},
59
+ {:mday => 1, :name => "Nýársdagur", :regions => [:is]},
60
+ {:mday => 6, :name => "Þrettándinn", :regions => [:is]},
61
+ {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]},
62
+ {:mday => 1, :name => "Nyårsdagen", :regions => [:se]},
63
+ {:mday => 6, :name => "Trettondedag jul", :regions => [:se]}],
64
+ 12 => [{:mday => 13, :type => :informal, :name => "Sankt Lucia", :regions => [:dk]},
65
+ {:mday => 24, :name => "Juleaftensdag", :regions => [:dk]},
66
+ {:mday => 25, :name => "1. juledag", :regions => [:dk]},
67
+ {:mday => 26, :name => "2. juledag", :regions => [:dk]},
68
+ {:mday => 24, :name => "Jól", :regions => [:is]},
69
+ {:mday => 25, :name => "Jól", :regions => [:is]},
70
+ {:mday => 26, :name => "Jól", :regions => [:is]},
71
+ {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]},
72
+ {:mday => 25, :name => "Juldagen", :regions => [:se]},
73
+ {:mday => 26, :name => "Annandag jul", :regions => [:se]}],
74
+ 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
75
+ 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
76
+ 4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
77
+ {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]},
78
+ {:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]},
79
+ {:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}]
80
+ }
81
+ end
82
+
83
+ # Iceland: first day of summer (Thursday after 18 April)
84
+ def self.is_sumardagurinn_fyrsti(year)
85
+ date = Date.civil(year,4,18)
86
+ if date.wday < 4
87
+ date += (4 - date.wday)
88
+ else date
89
+ date += (11 - date.wday)
90
+ end
91
+ date
92
+ end
93
+
94
+
95
+ # Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
96
+ def self.se_alla_helgons_dag(year)
97
+ date = Date.civil(year,10,31)
98
+ date += (6 - date.wday)
99
+ date
100
+ end
101
+
102
+
103
+ # Sweden: Mid-summer (Saturday between June 20–26)
104
+ def self.se_midsommardagen(year)
105
+ date = Date.civil(year,6,20)
106
+ date += (6 - date.wday)
107
+ date
108
+ end
109
+
110
+
111
+
112
+ end
113
+
114
+ Holidays.merge_defs(Holidays::SCANDINAVIA::DEFINED_REGIONS, Holidays::SCANDINAVIA::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,52 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/se.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/se'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module SE # :nodoc:
14
+ DEFINED_REGIONS = [:se]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:mday => 1, :name => "Första maj", :regions => [:se]}],
18
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Långfredagen", :regions => [:se]},
19
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Påskdagen", :regions => [:se]},
20
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annandag påsk", :regions => [:se]},
21
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi himmelsfärdsdag", :regions => [:se]},
22
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pingstdagen", :regions => [:se]},
23
+ {:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]}],
24
+ 6 => [{:mday => 6, :name => "Nationaldagen", :regions => [:se]},
25
+ {:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]}],
26
+ 1 => [{:mday => 1, :name => "Nyårsdagen", :regions => [:se]},
27
+ {:mday => 6, :name => "Trettondedag jul", :regions => [:se]}],
28
+ 12 => [{:mday => 25, :name => "Juldagen", :regions => [:se]},
29
+ {:mday => 26, :name => "Annandag jul", :regions => [:se]}]
30
+ }
31
+ end
32
+
33
+ # Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
34
+ def self.se_alla_helgons_dag(year)
35
+ date = Date.civil(year,10,31)
36
+ date += (6 - date.wday)
37
+ date
38
+ end
39
+
40
+
41
+ # Sweden: Mid-summer (Saturday between June 20–26)
42
+ def self.se_midsommardagen(year)
43
+ date = Date.civil(year,6,20)
44
+ date += (6 - date.wday)
45
+ date
46
+ end
47
+
48
+
49
+
50
+ end
51
+
52
+ Holidays.merge_defs(Holidays::SE::DEFINED_REGIONS, Holidays::SE::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,24 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/united_nations.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/united_nations'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module United_Nations # :nodoc:
14
+ DEFINED_REGIONS = [:]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+
18
+ }
19
+ end
20
+
21
+
22
+ end
23
+
24
+ Holidays.merge_defs(Holidays::United_Nations::DEFINED_REGIONS, Holidays::United_Nations::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,31 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/ups.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/ups'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module UPS # :nodoc:
14
+ DEFINED_REGIONS = [:ups]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:ups]}],
18
+ 11 => [{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:ups]},
19
+ {:wday => 5, :week => 4, :name => "Day After Thanksgiving", :regions => [:ups]}],
20
+ 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]}],
21
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:ups]},
22
+ {:mday => 31, :name => "New Year's Eve", :regions => [:ups]}],
23
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:ups]}],
24
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:ups]}]
25
+ }
26
+ end
27
+
28
+
29
+ end
30
+
31
+ Holidays.merge_defs(Holidays::UPS::DEFINED_REGIONS, Holidays::UPS::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,48 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/us.yaml, data/north_america_informal.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/us'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module US # :nodoc:
14
+ DEFINED_REGIONS = [:us, :us_dc, :ca]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
18
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
19
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :type => :informal, :name => "Good Friday", :regions => [:us]}],
20
+ 11 => [{:mday => 11, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Veterans Day", :regions => [:us]},
21
+ {:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:us]}],
22
+ 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]},
23
+ {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:us]},
24
+ {:function => lambda { |year| Holidays.us_inauguration_day(year) }, :function_id => "us_inauguration_day(year)", :name => "Inauguration Day", :regions => [:us_dc]}],
25
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:us]}],
26
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:us]}],
27
+ 2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]},
28
+ {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
29
+ {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
30
+ 3 => [{:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
31
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}],
32
+ 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
33
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
34
+ 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]},
35
+ {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}]
36
+ }
37
+ end
38
+
39
+ # January 20, every fourth year, following Presidential election
40
+ def self.us_inauguration_day(year)
41
+ year % 4 == 1 ? 20 : nil
42
+ end
43
+
44
+
45
+
46
+ end
47
+
48
+ Holidays.merge_defs(Holidays::US::DEFINED_REGIONS, Holidays::US::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,35 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/za.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/za'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module ZA # :nodoc:
14
+ DEFINED_REGIONS = [:za]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Workers Day", :regions => [:za]}],
18
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:za]},
19
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Family Day", :regions => [:za]}],
20
+ 6 => [{:mday => 16, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Youth Day", :regions => [:za]}],
21
+ 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]}],
22
+ 12 => [{:mday => 16, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Day of Reconciliation", :regions => [:za]},
23
+ {:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Christmas Day", :regions => [:za]},
24
+ {: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]}],
25
+ 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]}],
26
+ 3 => [{:mday => 21, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Human Rights Day", :regions => [:za]}],
27
+ 9 => [{:mday => 24, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Heritage Day", :regions => [:za]}],
28
+ 4 => [{:mday => 27, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Freedom Day", :regions => [:za]}]
29
+ }
30
+ end
31
+
32
+
33
+ end
34
+
35
+ Holidays.merge_defs(Holidays::ZA::DEFINED_REGIONS, Holidays::ZA::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/au'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/au.yaml
7
+ class AuDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_au
10
+ {Date.civil(2007,1,1) => 'New Year\'s Day',
11
+ Date.civil(2007,1,26) => 'Australia Day',
12
+ Date.civil(2007,4,6) => 'Good Friday',
13
+ Date.civil(2007,4,9) => 'Easter Monday',
14
+ Date.civil(2007,4,25) => 'ANZAC Day',
15
+ Date.civil(2007,12,25) => 'Christmas Day',
16
+ Date.civil(2007,12,26) => 'Boxing Day'}.each do |date, name|
17
+ assert_equal name, Holidays.on(date, :au, :informal)[0][:name]
18
+ end
19
+
20
+ [:au_sa, :au_act, :au_nsw, :au_].each do |r|
21
+ assert_equal 'Labour Day', Date.civil(2007,10,1).holidays(r)[0][:name]
22
+ end
23
+
24
+ [:au_sa, :au_act, :au_nsw, :au_vic, :au_tas, :au_qld, :au_nt, :au_].each do |r|
25
+ assert_equal 'Queen\'s Birthday', Date.civil(2007,6,11).holidays(r)[0][:name]
26
+ end
27
+
28
+ assert_equal 'Labour Day', Date.civil(2007,3,5).holidays(:au_wa)[0][:name]
29
+ assert_equal 'Labour Day', Date.civil(2007,3,12).holidays(:au_vic)[0][:name]
30
+ assert_equal 'Labour Day', Date.civil(2007,5,7).holidays(:au_qld)[0][:name]
31
+
32
+ assert_equal 'May Day', Date.civil(2007,5,7).holidays(:au_nt)[0][:name]
33
+
34
+ assert_equal 'Eight Hours Day', Date.civil(2007,3,12).holidays(:au_tas)[0][:name]
35
+ end
36
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/ca'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/ca.yaml, data/north_america_informal.yaml
7
+ class CaDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_ca
10
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
11
+ Date.civil(2008,3,21) => 'Good Friday',
12
+ Date.civil(2008,3,24) => 'Easter Monday',
13
+ Date.civil(2008,5,19) => 'Victoria Day',
14
+ Date.civil(2008,7,1) => 'Canada Day',
15
+ Date.civil(2008,9,1) => 'Labour Day',
16
+ Date.civil(2008,10,13) => 'Thanksgiving',
17
+ Date.civil(2008,11,11) => 'Rememberance Day',
18
+ Date.civil(2008,12,25) => 'Christmas Day',
19
+ Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
20
+ assert_equal name, Holidays.on(date, :ca, :informal)[0][:name]
21
+ end
22
+
23
+ # Victoria Day
24
+ [Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
25
+ Date.civil(2007,5,21), Date.civil(2008,5,19)].each do |date|
26
+ assert_equal 'Victoria Day', Holidays.on(date, :ca)[0][:name]
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,46 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/de'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/de.yaml
7
+ class DeDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_de
10
+ {Date.civil(2009,1,1) => 'Neujahrstag',
11
+ Date.civil(2009,4,10) => 'Karfreitag',
12
+ Date.civil(2009,4,12) => 'Ostern',
13
+ Date.civil(2009,4,13) => 'Ostermontag',
14
+ Date.civil(2009,5,1) => 'Tag der Arbeit',
15
+ Date.civil(2009,5,21) => 'Christi Himmelfahrt',
16
+ Date.civil(2009,6,1) => 'Pfingstmontag',
17
+ Date.civil(2009,10,3) => 'Tag der Deutschen Einheit',
18
+ Date.civil(2009,12,25) => '1. Weihnachtstag',
19
+ Date.civil(2009,12,26) => '2. Weihnachtstag'}.each do |date, name|
20
+ assert_equal name, Holidays.on(date, :de, :informal)[0][:name]
21
+ end
22
+
23
+ [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn, :de_th, :de_].each do |r|
24
+ assert_equal 'Fronleichnam', Date.civil(2009,6,11).holidays(r)[0][:name]
25
+ end
26
+
27
+ [:de_by, :de_sl, :de_].each do |r|
28
+ assert_equal 'Mariä Himmelfahrt', Date.civil(2009,8,15).holidays(r)[0][:name]
29
+ end
30
+
31
+ [:de_bb, :de_mv, :de_sn, :de_st, :de_th, :de_].each do |r|
32
+ assert_equal 'Reformationstag', Date.civil(2009,10,31).holidays(r)[0][:name]
33
+ end
34
+
35
+ [:de_bw, :de_by, :de_nw, :de_rp, :de_sl, :de_].each do |r|
36
+ assert_equal 'Allerheiligen', Date.civil(2009,11,1).holidays(r)[0][:name]
37
+ end
38
+
39
+ # Repentance Day
40
+ assert_equal 'Buß- und Bettag', Date.civil(2004,11,17).holidays(:de_sn)[0][:name]
41
+ assert_equal 'Buß- und Bettag', Date.civil(2005,11,16).holidays(:de_sn)[0][:name]
42
+ assert_equal 'Buß- und Bettag', Date.civil(2006,11,22).holidays(:de_sn)[0][:name]
43
+ assert_equal 'Buß- und Bettag', Date.civil(2009,11,18).holidays(:de_sn)[0][:name]
44
+
45
+ end
46
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/dk'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/dk.yaml
7
+ class DkDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_dk
10
+ {Date.civil(2007,1,1) => 'Nytårsdag',
11
+ Date.civil(2007,2,18) => 'Fastelavn',
12
+ Date.civil(2007,4,9) => 'Danmarks besættelse',
13
+ Date.civil(2007,4,16) => 'Dronningens fødselsdag',
14
+ Date.civil(2007,4,5) => 'Skærtorsdag',
15
+ Date.civil(2007,4,6) => 'Langfredag',
16
+ Date.civil(2007,4,8) => 'Påskedag',
17
+ Date.civil(2007,4,9) => '2. påskedag',
18
+ Date.civil(2007,5,1) => 'Arbejdernes kampdag',
19
+ Date.civil(2007,5,4) => 'Store Bededag',
20
+ Date.civil(2007,5,17) => 'Kristi Himmelfartsdag',
21
+ Date.civil(2007,5,27) => 'Pinsedag',
22
+ Date.civil(2007,5,28) => '2. Pinsedag',
23
+ Date.civil(2007,6,5) => 'Grundlovsdag',
24
+ Date.civil(2007,12,24) => 'Juleaftensdag',
25
+ Date.civil(2007,12,25) => '1. juledag',
26
+ Date.civil(2007,12,26) => '2. juledag'}.each do |date, name|
27
+ assert_equal name, Holidays.on(date, :dk, :informal)[0][:name]
28
+ end
29
+ end
30
+ end