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.
- data/.gitignore +3 -0
- data/CHANGELOG +22 -0
- data/LICENSE +21 -0
- data/README.rdoc +77 -0
- data/REFERENCES +16 -0
- data/VERSION +1 -0
- data/data/SYNTAX +111 -0
- data/data/au.yaml +111 -0
- data/data/build_defs.rb +152 -0
- data/data/ca.yaml +141 -0
- data/data/cz.yaml +68 -0
- data/data/de.yaml +111 -0
- data/data/dk.yaml +117 -0
- data/data/es.yaml +161 -0
- data/data/fr.yaml +70 -0
- data/data/gb.yaml +106 -0
- data/data/ie.yaml +58 -0
- data/data/index.yaml +26 -0
- data/data/is.yaml +136 -0
- data/data/it.yaml +66 -0
- data/data/mx.yaml +106 -0
- data/data/nl.yaml +67 -0
- data/data/no.yaml +82 -0
- data/data/north_america_informal.yaml +49 -0
- data/data/nyse.yaml +63 -0
- data/data/nz.yaml +141 -0
- data/data/pt.yaml +85 -0
- data/data/se.yaml +91 -0
- data/data/united_nations.yaml +188 -0
- data/data/ups.yaml +56 -0
- data/data/us.yaml +81 -0
- data/data/za.yaml +78 -0
- data/holidays.gemspec +16 -0
- data/lib/holidays/MANIFEST +28 -0
- data/lib/holidays/au.rb +43 -0
- data/lib/holidays/ca.rb +69 -0
- data/lib/holidays/cz.rb +36 -0
- data/lib/holidays/de.rb +51 -0
- data/lib/holidays/dk.rb +48 -0
- data/lib/holidays/es.rb +53 -0
- data/lib/holidays/europe.rb +236 -0
- data/lib/holidays/fr.rb +37 -0
- data/lib/holidays/gb.rb +41 -0
- data/lib/holidays/ie.rb +33 -0
- data/lib/holidays/is.rb +62 -0
- data/lib/holidays/it.rb +36 -0
- data/lib/holidays/mx.rb +52 -0
- data/lib/holidays/nl.rb +37 -0
- data/lib/holidays/no.rb +40 -0
- data/lib/holidays/north_america.rb +108 -0
- data/lib/holidays/nyse.rb +33 -0
- data/lib/holidays/nz.rb +69 -0
- data/lib/holidays/pt.rb +38 -0
- data/lib/holidays/scandinavia.rb +115 -0
- data/lib/holidays/se.rb +53 -0
- data/lib/holidays/united_nations.rb +25 -0
- data/lib/holidays/ups.rb +32 -0
- data/lib/holidays/us.rb +49 -0
- data/lib/holidays/za.rb +36 -0
- data/lib/holidays.rb +408 -0
- data/rakefile.rb +103 -0
- data/test/defs/test_defs_au.rb +35 -0
- data/test/defs/test_defs_ca.rb +28 -0
- data/test/defs/test_defs_cz.rb +25 -0
- data/test/defs/test_defs_de.rb +48 -0
- data/test/defs/test_defs_dk.rb +29 -0
- data/test/defs/test_defs_es.rb +56 -0
- data/test/defs/test_defs_europe.rb +277 -0
- data/test/defs/test_defs_fr.rb +25 -0
- data/test/defs/test_defs_gb.rb +35 -0
- data/test/defs/test_defs_ie.rb +20 -0
- data/test/defs/test_defs_is.rb +32 -0
- data/test/defs/test_defs_it.rb +24 -0
- data/test/defs/test_defs_mx.rb +21 -0
- data/test/defs/test_defs_nl.rb +23 -0
- data/test/defs/test_defs_no.rb +28 -0
- data/test/defs/test_defs_north_america.rb +53 -0
- data/test/defs/test_defs_nyse.rb +21 -0
- data/test/defs/test_defs_nz.rb +21 -0
- data/test/defs/test_defs_pt.rb +31 -0
- data/test/defs/test_defs_scandinavia.rb +75 -0
- data/test/defs/test_defs_se.rb +32 -0
- data/test/defs/test_defs_ups.rb +20 -0
- data/test/defs/test_defs_us.rb +22 -0
- data/test/defs/test_defs_za.rb +24 -0
- data/test/test_date.rb +101 -0
- data/test/test_helper.rb +11 -0
- data/test/test_holidays.rb +117 -0
- data/test/test_multiple_regions.rb +20 -0
- 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)
|
data/lib/holidays/se.rb
ADDED
|
@@ -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)
|
data/lib/holidays/ups.rb
ADDED
|
@@ -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)
|
data/lib/holidays/us.rb
ADDED
|
@@ -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)
|
data/lib/holidays/za.rb
ADDED
|
@@ -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)
|