holidays 3.3.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +44 -0
- data/CONTRIBUTING.md +37 -0
- data/README.md +16 -25
- data/REFERENCES +4 -1
- data/Rakefile +38 -8
- data/benchmark.rb +8 -0
- data/definitions/README.md +187 -8
- data/definitions/ar.yaml +2 -1
- data/definitions/at.yaml +17 -13
- data/definitions/au.yaml +65 -60
- data/definitions/be_fr.yaml +14 -10
- data/definitions/be_nl.yaml +8 -4
- data/definitions/bg.yaml +12 -6
- data/definitions/br.yaml +6 -3
- data/definitions/ca.yaml +8 -6
- data/definitions/ch.yaml +21 -15
- data/definitions/cl.yaml +4 -2
- data/definitions/cr.yaml +5 -3
- data/definitions/cz.yaml +4 -2
- data/definitions/de.yaml +25 -14
- data/definitions/dk.yaml +26 -17
- data/definitions/ecb_target.yaml +4 -2
- data/definitions/el.yaml +23 -18
- data/definitions/es.yaml +31 -28
- data/definitions/federal_reserve.yaml +12 -12
- data/definitions/fedex.yaml +6 -6
- data/definitions/fi.yaml +26 -25
- data/definitions/fr.yaml +8 -4
- data/definitions/gb.yaml +9 -7
- data/definitions/hr.yaml +8 -6
- data/definitions/hu.yaml +8 -6
- data/definitions/ie.yaml +17 -16
- data/definitions/index.yaml +1 -1
- data/definitions/is.yaml +29 -19
- data/definitions/it.yaml +10 -9
- data/definitions/jp.yaml +92 -44
- data/definitions/li.yaml +25 -20
- data/definitions/lt.yaml +2 -1
- data/definitions/ma.yaml +7 -7
- data/definitions/mx.yaml +11 -11
- data/definitions/nerc.yaml +6 -6
- data/definitions/nl.yaml +22 -18
- data/definitions/no.yaml +19 -11
- data/definitions/north_america_informal.yaml +6 -6
- data/definitions/nyse.yaml +9 -8
- data/definitions/nz.yaml +33 -29
- data/definitions/ph.yaml +15 -8
- data/definitions/pl.yaml +27 -17
- data/definitions/pt.yaml +4 -2
- data/definitions/ro.yaml +21 -18
- data/definitions/se.yaml +24 -18
- data/definitions/sg.yaml +10 -9
- data/definitions/si.yaml +4 -2
- data/definitions/sk.yaml +4 -2
- data/definitions/united_nations.yaml +12 -12
- data/definitions/ups.yaml +6 -6
- data/definitions/us.yaml +12 -11
- data/definitions/ve.yaml +8 -4
- data/definitions/vi.yaml +6 -6
- data/definitions/za.yaml +26 -24
- data/holidays.gemspec +3 -1
- data/lib/generated_definitions/MANIFEST +1 -1
- data/lib/generated_definitions/ar.rb +8 -6
- data/lib/generated_definitions/at.rb +11 -9
- data/lib/generated_definitions/au.rb +75 -99
- data/lib/generated_definitions/be.rb +12 -10
- data/lib/generated_definitions/be_fr.rb +12 -10
- data/lib/generated_definitions/be_nl.rb +12 -10
- data/lib/generated_definitions/bg.rb +14 -13
- data/lib/generated_definitions/br.rb +11 -9
- data/lib/generated_definitions/ca.rb +20 -20
- data/lib/generated_definitions/ch.rb +41 -44
- data/lib/generated_definitions/cl.rb +9 -7
- data/lib/generated_definitions/cr.rb +9 -7
- data/lib/generated_definitions/cz.rb +9 -6
- data/lib/generated_definitions/de.rb +25 -25
- data/lib/generated_definitions/dk.rb +17 -15
- data/lib/generated_definitions/ecb_target.rb +9 -7
- data/lib/generated_definitions/el.rb +13 -11
- data/lib/generated_definitions/es.rb +35 -33
- data/lib/generated_definitions/europe.rb +234 -247
- data/lib/generated_definitions/federal_reserve.rb +11 -9
- data/lib/generated_definitions/fedex.rb +42 -0
- data/lib/generated_definitions/fi.rb +32 -36
- data/lib/generated_definitions/fr.rb +12 -10
- data/lib/generated_definitions/gb.rb +15 -13
- data/lib/generated_definitions/hr.rb +10 -8
- data/lib/generated_definitions/hu.rb +9 -7
- data/lib/generated_definitions/ie.rb +17 -17
- data/lib/generated_definitions/is.rb +26 -26
- data/lib/generated_definitions/it.rb +9 -7
- data/lib/generated_definitions/jp.rb +112 -89
- data/lib/generated_definitions/li.rb +14 -12
- data/lib/generated_definitions/lt.rb +9 -7
- data/lib/generated_definitions/ma.rb +7 -5
- data/lib/generated_definitions/mx.rb +7 -5
- data/lib/generated_definitions/nerc.rb +10 -8
- data/lib/generated_definitions/nl.rb +15 -13
- data/lib/generated_definitions/no.rb +16 -14
- data/lib/generated_definitions/north_america.rb +34 -37
- data/lib/generated_definitions/nyse.rb +10 -8
- data/lib/generated_definitions/nz.rb +40 -40
- data/lib/generated_definitions/ph.rb +17 -13
- data/lib/generated_definitions/pl.rb +25 -27
- data/lib/generated_definitions/pt.rb +10 -8
- data/lib/generated_definitions/ro.rb +11 -9
- data/lib/generated_definitions/scandinavia.rb +92 -102
- data/lib/generated_definitions/se.rb +25 -27
- data/lib/generated_definitions/sg.rb +11 -9
- data/lib/generated_definitions/si.rb +10 -8
- data/lib/generated_definitions/sk.rb +9 -7
- data/lib/generated_definitions/united_nations.rb +7 -5
- data/lib/generated_definitions/ups.rb +13 -12
- data/lib/generated_definitions/us.rb +20 -21
- data/lib/generated_definitions/ve.rb +11 -9
- data/lib/generated_definitions/vi.rb +7 -5
- data/lib/generated_definitions/za.rb +19 -17
- data/lib/holidays.rb +20 -83
- data/lib/holidays/date_calculator/weekend_modifier.rb +22 -5
- data/lib/holidays/definition/context/generator.rb +67 -29
- data/lib/holidays/definition/context/merger.rb +8 -8
- data/lib/holidays/definition/decorator/custom_method_proc.rb +28 -0
- data/lib/holidays/definition/decorator/custom_method_source.rb +30 -0
- data/lib/holidays/definition/entity/custom_method.rb +11 -0
- data/lib/holidays/definition/parser/custom_method.rb +69 -0
- data/lib/holidays/definition/repository/custom_methods.rb +27 -0
- data/lib/holidays/definition/repository/holidays_by_month.rb +1 -1
- data/lib/holidays/definition/repository/{proc_cache.rb → proc_result_cache.rb} +19 -4
- data/lib/holidays/definition/validator/custom_method.rb +31 -0
- data/lib/holidays/definition_factory.rb +42 -6
- data/lib/holidays/errors.rb +6 -0
- data/lib/holidays/load_all_definitions.rb +57 -0
- data/lib/holidays/option/context/parse_options.rb +26 -16
- data/lib/holidays/option_factory.rb +1 -0
- data/lib/holidays/use_case/context/between.rb +41 -14
- data/lib/holidays/use_case_factory.rb +2 -1
- data/lib/holidays/version.rb +1 -1
- data/test/data/test_single_custom_holiday_with_custom_procs.yaml +24 -0
- data/test/defs/test_defs_at.rb +1 -1
- data/test/defs/test_defs_au.rb +3 -2
- data/test/defs/test_defs_cr.rb +1 -0
- data/test/defs/test_defs_cz.rb +1 -0
- data/test/defs/test_defs_dk.rb +2 -2
- data/test/defs/test_defs_el.rb +7 -6
- data/test/defs/test_defs_europe.rb +40 -33
- data/test/defs/test_defs_fedex.rb +24 -0
- data/test/defs/test_defs_fi.rb +4 -3
- data/test/defs/test_defs_hr.rb +2 -2
- data/test/defs/test_defs_hu.rb +2 -2
- data/test/defs/test_defs_is.rb +2 -1
- data/test/defs/test_defs_it.rb +2 -1
- data/test/defs/test_defs_jp.rb +1 -1
- data/test/defs/test_defs_li.rb +1 -1
- data/test/defs/test_defs_ma.rb +2 -1
- data/test/defs/test_defs_mx.rb +4 -3
- data/test/defs/test_defs_nl.rb +7 -6
- data/test/defs/test_defs_no.rb +1 -0
- data/test/defs/test_defs_north_america.rb +4 -3
- data/test/defs/test_defs_nyse.rb +2 -1
- data/test/defs/test_defs_pl.rb +1 -0
- data/test/defs/test_defs_ro.rb +11 -11
- data/test/defs/test_defs_scandinavia.rb +12 -8
- data/test/defs/test_defs_se.rb +3 -2
- data/test/defs/test_defs_sg.rb +2 -1
- data/test/defs/test_defs_vi.rb +1 -1
- data/test/defs/test_defs_za.rb +3 -2
- data/test/holidays/date_calculator/test_weekend_modifier.rb +11 -0
- data/test/holidays/definition/context/test_generator.rb +64 -5
- data/test/holidays/definition/context/test_merger.rb +5 -2
- data/test/holidays/definition/decorator/test_custom_method_proc.rb +113 -0
- data/test/holidays/definition/decorator/test_custom_method_source.rb +96 -0
- data/test/holidays/definition/parser/test_custom_method.rb +79 -0
- data/test/holidays/definition/repository/test_custom_methods.rb +43 -0
- data/test/holidays/definition/repository/test_holidays_by_month.rb +0 -32
- data/test/holidays/definition/repository/test_proc_result_cache.rb +84 -0
- data/test/holidays/definition/validator/test_custom_method.rb +89 -0
- data/test/holidays/option/context/test_parse_options.rb +5 -0
- data/test/holidays/test_definition_factory.rb +17 -2
- data/test/holidays/use_case/context/test_between.rb +2 -0
- data/test/test_all_regions.rb +7 -49
- data/test/test_custom_holidays.rb +8 -2
- data/test/test_helper.rb +9 -2
- data/test/test_holidays.rb +9 -29
- metadata +46 -11
- data/lib/generated_definitions/fed_ex.rb +0 -41
- data/test/holidays/definition/repository/test_proc_cache.rb +0 -29
- data/test/test_parse_definitions.rb +0 -30
data/definitions/nyse.yaml
CHANGED
@@ -9,7 +9,8 @@ months:
|
|
9
9
|
0:
|
10
10
|
- name: Good Friday
|
11
11
|
regions: [nyse]
|
12
|
-
function: easter(year)
|
12
|
+
function: easter(year)
|
13
|
+
function_modifier: -2
|
13
14
|
1:
|
14
15
|
- name: New Year's Day
|
15
16
|
regions: [nyse]
|
@@ -28,12 +29,12 @@ months:
|
|
28
29
|
week: -1
|
29
30
|
regions: [nyse]
|
30
31
|
wday: 1
|
31
|
-
7:
|
32
|
+
7:
|
32
33
|
- name: Independence Day
|
33
34
|
regions: [nyse]
|
34
35
|
mday: 4
|
35
|
-
observed: to_weekday_if_weekend
|
36
|
-
9:
|
36
|
+
observed: to_weekday_if_weekend(date)
|
37
|
+
9:
|
37
38
|
- name: Labor Day
|
38
39
|
week: 1
|
39
40
|
regions: [nyse]
|
@@ -43,14 +44,14 @@ months:
|
|
43
44
|
week: 4
|
44
45
|
regions: [nyse]
|
45
46
|
wday: 4
|
46
|
-
12:
|
47
|
+
12:
|
47
48
|
- name: Christmas Day
|
48
49
|
regions: [nyse]
|
49
50
|
mday: 25
|
50
|
-
observed: to_weekday_if_weekend
|
51
|
+
observed: to_weekday_if_weekend(date)
|
51
52
|
methods:
|
52
53
|
tests: |
|
53
|
-
{Date.civil(2008,1,1) => 'New Year\'s Day',
|
54
|
+
{Date.civil(2008,1,1) => 'New Year\'s Day',
|
54
55
|
Date.civil(2008,1,21) => 'Martin Luther King, Jr. Day',
|
55
56
|
Date.civil(2008,2,18) => 'Presidents\' Day',
|
56
57
|
Date.civil(2008,3,21) => 'Good Friday',
|
@@ -60,4 +61,4 @@ tests: |
|
|
60
61
|
Date.civil(2008,11,27) => 'Thanksgiving',
|
61
62
|
Date.civil(2008,12,25) => 'Christmas Day'}.each do |date, name|
|
62
63
|
assert_equal name, (Holidays.on(date, :nyse)[0] || {})[:name]
|
63
|
-
end
|
64
|
+
end
|
data/definitions/nz.yaml
CHANGED
@@ -7,58 +7,64 @@ months:
|
|
7
7
|
0:
|
8
8
|
- name: Good Friday
|
9
9
|
regions: [nz]
|
10
|
-
function: easter(year)
|
10
|
+
function: easter(year)
|
11
|
+
function_modifier: -2
|
12
|
+
- name: Easter Saturday
|
13
|
+
regions: [nz]
|
14
|
+
function: easter(year)
|
15
|
+
function_modifier: -1
|
11
16
|
- name: Easter Monday
|
12
17
|
regions: [nz]
|
13
|
-
function: easter(year)
|
18
|
+
function: easter(year)
|
19
|
+
function_modifier: 1
|
14
20
|
1:
|
15
21
|
- name: New Year's Day
|
16
22
|
regions: [nz]
|
17
23
|
mday: 1
|
18
|
-
observed: to_monday_if_weekend
|
24
|
+
observed: to_monday_if_weekend(date)
|
19
25
|
- name: Day after New Year's Day
|
20
26
|
regions: [nz]
|
21
27
|
mday: 2
|
22
|
-
observed: to_weekday_if_boxing_weekend
|
28
|
+
observed: to_weekday_if_boxing_weekend(date)
|
23
29
|
- name: Southland Anniversary Day
|
24
30
|
regions: [nz_sl]
|
25
31
|
mday: 17
|
26
32
|
- name: Wellington Anniversary Day
|
27
33
|
regions: [nz_we]
|
28
34
|
mday: 22
|
29
|
-
observed: closest_monday
|
35
|
+
observed: closest_monday(date)
|
30
36
|
- name: Auckland Anniversary Day
|
31
37
|
regions: [nz_ak]
|
32
38
|
mday: 29
|
33
|
-
observed: closest_monday
|
39
|
+
observed: closest_monday(date)
|
34
40
|
- name: Northland Anniversary Day
|
35
41
|
regions: [nz_nl]
|
36
42
|
mday: 29
|
37
|
-
observed: closest_monday
|
43
|
+
observed: closest_monday(date)
|
38
44
|
2:
|
39
45
|
- name: Nelson Anniversary Day
|
40
46
|
regions: [nz_ne]
|
41
47
|
mday: 1
|
42
|
-
observed: closest_monday
|
48
|
+
observed: closest_monday(date)
|
43
49
|
- name: Waitangi Day
|
44
50
|
regions: [nz]
|
45
51
|
mday: 6
|
46
|
-
observed: to_monday_if_weekend
|
52
|
+
observed: to_monday_if_weekend(date)
|
47
53
|
3:
|
48
54
|
- name: Otago Anniversary Day
|
49
55
|
regions: [nz_ot]
|
50
56
|
mday: 23
|
51
|
-
observed: closest_monday
|
57
|
+
observed: closest_monday(date)
|
52
58
|
- name: Taranaki Anniversary Day
|
53
59
|
regions: [nz_ta]
|
54
60
|
week: 2
|
55
61
|
wday: 1
|
56
|
-
observed: closest_monday
|
62
|
+
observed: closest_monday(date)
|
57
63
|
4:
|
58
64
|
- name: ANZAC Day
|
59
65
|
regions: [nz]
|
60
66
|
mday: 25
|
61
|
-
observed: to_monday_if_weekend
|
67
|
+
observed: to_monday_if_weekend(date)
|
62
68
|
6:
|
63
69
|
- name: Queen's Birthday
|
64
70
|
regions: [nz]
|
@@ -74,7 +80,7 @@ months:
|
|
74
80
|
regions: [nz_hb]
|
75
81
|
week: 1
|
76
82
|
wday: 1
|
77
|
-
observed: previous_friday
|
83
|
+
observed: previous_friday(date)
|
78
84
|
- name: Labour Day
|
79
85
|
regions: [nz]
|
80
86
|
week: 4
|
@@ -83,7 +89,7 @@ months:
|
|
83
89
|
regions: [nz_mb]
|
84
90
|
week: 4
|
85
91
|
wday: 1
|
86
|
-
observed: next_week
|
92
|
+
observed: next_week(date)
|
87
93
|
11:
|
88
94
|
- name: Canterbury Anniversary Day
|
89
95
|
regions: [nz_ca]
|
@@ -92,20 +98,20 @@ months:
|
|
92
98
|
- name: Chatham Island Anniversary Day
|
93
99
|
regions: [nz_ch]
|
94
100
|
mday: 30
|
95
|
-
observed: closest_monday
|
101
|
+
observed: closest_monday(date)
|
96
102
|
12:
|
97
103
|
- name: Westland Anniversary Day
|
98
104
|
regions: [nz_wl]
|
99
105
|
mday: 1
|
100
|
-
observed: closest_monday
|
106
|
+
observed: closest_monday(date)
|
101
107
|
- name: Christmas Day
|
102
108
|
regions: [nz]
|
103
109
|
mday: 25
|
104
|
-
observed: to_monday_if_weekend
|
110
|
+
observed: to_monday_if_weekend(date)
|
105
111
|
- name: Boxing Day
|
106
112
|
regions: [nz]
|
107
113
|
mday: 26
|
108
|
-
observed: to_weekday_if_boxing_weekend
|
114
|
+
observed: to_weekday_if_boxing_weekend(date)
|
109
115
|
tests: |
|
110
116
|
{Date.civil(2007,1,1) => 'New Year\'s Day',
|
111
117
|
Date.civil(2007,1,2) => 'Day after New Year\'s Day',
|
@@ -136,8 +142,9 @@ tests: |
|
|
136
142
|
assert_equal 'Taranaki Anniversary Day', Holidays.on(Date.civil(2018, 3, 12), :nz_ta, :observed)[0][:name]
|
137
143
|
assert_equal 'Taranaki Anniversary Day', Holidays.on(Date.civil(2019, 3, 11), :nz_ta, :observed)[0][:name]
|
138
144
|
methods:
|
139
|
-
closest_monday:
|
140
|
-
|
145
|
+
closest_monday:
|
146
|
+
arguments: date
|
147
|
+
source: |
|
141
148
|
if [1, 2, 3, 4].include?(date.wday)
|
142
149
|
date -= (date.wday - 1)
|
143
150
|
elsif 0 == date.wday
|
@@ -146,14 +153,11 @@ methods:
|
|
146
153
|
date += 8 - date.wday
|
147
154
|
end
|
148
155
|
date
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
def self.previous_friday(date)
|
156
|
+
previous_friday:
|
157
|
+
arguments: date
|
158
|
+
source: |
|
153
159
|
date - 3
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
def self.next_week(date)
|
160
|
+
next_week:
|
161
|
+
arguments: date
|
162
|
+
source: |
|
158
163
|
date + 7
|
159
|
-
end
|
data/definitions/ph.yaml
CHANGED
@@ -9,13 +9,16 @@ months:
|
|
9
9
|
0:
|
10
10
|
- name: Maundy Thursday
|
11
11
|
regions: [ph]
|
12
|
-
function: easter(year)
|
12
|
+
function: easter(year)
|
13
|
+
function_modifier: -3
|
13
14
|
- name: Good Friday
|
14
15
|
regions: [ph]
|
15
|
-
function: easter(year)
|
16
|
+
function: easter(year)
|
17
|
+
function_modifier: -2
|
16
18
|
- name: Holy Saturday
|
17
19
|
regions: [ph]
|
18
|
-
function: easter(year)
|
20
|
+
function: easter(year)
|
21
|
+
function_modifier: -1
|
19
22
|
- name: Easter Sunday
|
20
23
|
regions: [ph]
|
21
24
|
function: easter(year)
|
@@ -64,13 +67,17 @@ months:
|
|
64
67
|
regions: [ph]
|
65
68
|
mday: 31
|
66
69
|
methods:
|
67
|
-
ph_heroes_day:
|
70
|
+
ph_heroes_day:
|
68
71
|
# last Monday of August
|
69
|
-
|
72
|
+
arguments: year
|
73
|
+
source: |
|
70
74
|
date = Date.new(year, 8, -1)
|
71
|
-
|
72
|
-
|
73
|
-
|
75
|
+
|
76
|
+
if date.wday != 1
|
77
|
+
date -= date.wday - 1
|
78
|
+
end
|
79
|
+
|
80
|
+
date
|
74
81
|
tests: |
|
75
82
|
{Date.civil(2015,2,25) => 'People Power Anniversary',
|
76
83
|
Date.civil(2015,4,3) => 'Good Friday',
|
data/definitions/pl.yaml
CHANGED
@@ -7,44 +7,54 @@ months:
|
|
7
7
|
0:
|
8
8
|
- name: Tłusty Czwartek
|
9
9
|
regions: [pl]
|
10
|
-
function: easter(year)
|
10
|
+
function: easter(year)
|
11
|
+
function_modifier: -52
|
11
12
|
type: informal
|
12
13
|
- name: Ostatki
|
13
14
|
regions: [pl]
|
14
|
-
function: easter(year)
|
15
|
+
function: easter(year)
|
16
|
+
function_modifier: -47
|
15
17
|
type: informal
|
16
18
|
- name: Środa Popielcowa
|
17
19
|
regions: [pl]
|
18
|
-
function: easter(year)
|
20
|
+
function: easter(year)
|
21
|
+
function_modifier: -46
|
19
22
|
type: informal
|
20
23
|
- name: Niedziela Palmowa
|
21
24
|
regions: [pl]
|
22
|
-
function: easter(year)
|
25
|
+
function: easter(year)
|
26
|
+
function_modifier: -7
|
23
27
|
type: informal
|
24
28
|
- name: Wielki Czwartek
|
25
29
|
regions: [pl]
|
26
|
-
function: easter(year)
|
30
|
+
function: easter(year)
|
31
|
+
function_modifier: -3
|
27
32
|
type: informal
|
28
33
|
- name: Wielki Piątek
|
29
34
|
regions: [pl]
|
30
|
-
function: easter(year)
|
35
|
+
function: easter(year)
|
36
|
+
function_modifier: -2
|
31
37
|
type: informal
|
32
38
|
- name: Wielka Sobota
|
33
39
|
regions: [pl]
|
34
|
-
function: easter(year)
|
40
|
+
function: easter(year)
|
41
|
+
function_modifier: -1
|
35
42
|
type: informal
|
36
43
|
- name: Niedziela Wielkanocna
|
37
44
|
regions: [pl]
|
38
45
|
function: easter(year)
|
39
46
|
- name: Poniedziałek Wielkanocny (Lany Poniedziałek)
|
40
47
|
regions: [pl]
|
41
|
-
function: easter(year)
|
48
|
+
function: easter(year)
|
49
|
+
function_modifier: 1
|
42
50
|
- name: Zesłanie Ducha Świętego (Zielone Świątki)
|
43
51
|
regions: [pl]
|
44
|
-
function: easter(year)
|
52
|
+
function: easter(year)
|
53
|
+
function_modifier: 49
|
45
54
|
- name: Uroczystość Najświętszego Ciała i Krwi Pańskiej (Boże Ciało)
|
46
55
|
regions: [pl]
|
47
|
-
function: easter(year)
|
56
|
+
function: easter(year)
|
57
|
+
function_modifier: 60
|
48
58
|
1:
|
49
59
|
- name: Nowy Rok
|
50
60
|
regions: [pl]
|
@@ -163,16 +173,16 @@ months:
|
|
163
173
|
mday: 31
|
164
174
|
type: informal
|
165
175
|
methods:
|
166
|
-
pl_trzech_kroli:
|
176
|
+
pl_trzech_kroli:
|
167
177
|
# Poland: January 6 is holiday since 2011
|
168
|
-
|
178
|
+
arguments: year
|
179
|
+
source: |
|
169
180
|
year >= 2011 ? 6 : nil
|
170
|
-
|
171
|
-
pl_trzech_kroli_informal: |
|
181
|
+
pl_trzech_kroli_informal:
|
172
182
|
# Poland: January 6 wasn't holiday before 2011
|
173
|
-
|
183
|
+
arguments: year
|
184
|
+
source: |
|
174
185
|
year < 2011 ? 6 : nil
|
175
|
-
end
|
176
186
|
tests: |
|
177
187
|
{Date.civil(2011,1,1) => 'Nowy Rok',
|
178
188
|
Date.civil(2011,5,1) => 'Święto Państwowe (Święto Pracy)',
|
@@ -307,4 +317,4 @@ tests: |
|
|
307
317
|
|
308
318
|
# Wniebowzięcie Najświętszej Maryi Panny & Święto Wojska Polskiego
|
309
319
|
assert_equal 'Wniebowzięcie Najświętszej Maryi Panny', (Holidays.on(Date.civil(2011,8,15), :pl)[0] || {})[:name]
|
310
|
-
assert_equal 'Święto Wojska Polskiego', (Holidays.on(Date.civil(2011,8,15), :pl)[1] || {})[:name]
|
320
|
+
assert_equal 'Święto Wojska Polskiego', (Holidays.on(Date.civil(2011,8,15), :pl)[1] || {})[:name]
|
data/definitions/pt.yaml
CHANGED
@@ -14,11 +14,13 @@ months:
|
|
14
14
|
0:
|
15
15
|
- name: Carnaval # same as Shrove Tuesday
|
16
16
|
regions: [pt]
|
17
|
-
function: easter(year)
|
17
|
+
function: easter(year)
|
18
|
+
function_modifier: -47
|
18
19
|
type: informal
|
19
20
|
- name: Sexta-feira Santa
|
20
21
|
regions: [pt]
|
21
|
-
function: easter(year)
|
22
|
+
function: easter(year)
|
23
|
+
function_modifier: -2
|
22
24
|
- name: Páscoa
|
23
25
|
regions: [pt]
|
24
26
|
function: easter(year)
|
data/definitions/ro.yaml
CHANGED
@@ -7,18 +7,21 @@
|
|
7
7
|
---
|
8
8
|
months:
|
9
9
|
0:
|
10
|
-
- name: Paștele
|
10
|
+
- name: Paștele - duminică
|
11
11
|
regions: [ro]
|
12
12
|
function: orthodox_easter(year)
|
13
|
-
- name: Paștele
|
13
|
+
- name: Paștele - luni
|
14
14
|
regions: [ro]
|
15
|
-
function: orthodox_easter(year)
|
16
|
-
|
15
|
+
function: orthodox_easter(year)
|
16
|
+
function_modifier: 1
|
17
|
+
- name: Rusaliile - 50
|
17
18
|
regions: [ro]
|
18
|
-
function: orthodox_easter(year)
|
19
|
-
|
19
|
+
function: orthodox_easter(year)
|
20
|
+
function_modifier: 49
|
21
|
+
- name: Rusaliile - 51
|
20
22
|
regions: [ro]
|
21
|
-
function: orthodox_easter(year)
|
23
|
+
function: orthodox_easter(year)
|
24
|
+
function_modifier: 50
|
22
25
|
1:
|
23
26
|
- name: Anul nou
|
24
27
|
regions: [ro]
|
@@ -50,17 +53,17 @@ months:
|
|
50
53
|
mday: 26
|
51
54
|
tests: |
|
52
55
|
{
|
53
|
-
Date.civil(1961,4,9) => 'Paștele',
|
54
|
-
Date.civil(1961,4,10) => 'Paștele',
|
55
|
-
Date.civil(2013,5,5) => 'Paștele',
|
56
|
-
Date.civil(2013,5,6) => 'Paștele',
|
57
|
-
Date.civil(2027,5,2) => 'Paștele',
|
58
|
-
Date.civil(2027,5,3) => 'Paștele',
|
59
|
-
Date.civil(2012,6,4) => 'Rusaliile',
|
60
|
-
Date.civil(2013,6,23) => 'Rusaliile',
|
61
|
-
Date.civil(2013,6,24) => 'Rusaliile',
|
62
|
-
Date.civil(1986,6,22) => 'Rusaliile',
|
63
|
-
Date.civil(1986,6,23) => 'Rusaliile',
|
56
|
+
Date.civil(1961,4,9) => 'Paștele - duminică',
|
57
|
+
Date.civil(1961,4,10) => 'Paștele - luni',
|
58
|
+
Date.civil(2013,5,5) => 'Paștele - duminică',
|
59
|
+
Date.civil(2013,5,6) => 'Paștele - luni',
|
60
|
+
Date.civil(2027,5,2) => 'Paștele - duminică',
|
61
|
+
Date.civil(2027,5,3) => 'Paștele - luni',
|
62
|
+
Date.civil(2012,6,4) => 'Rusaliile - 51',
|
63
|
+
Date.civil(2013,6,23) => 'Rusaliile - 50',
|
64
|
+
Date.civil(2013,6,24) => 'Rusaliile - 51',
|
65
|
+
Date.civil(1986,6,22) => 'Rusaliile - 50',
|
66
|
+
Date.civil(1986,6,23) => 'Rusaliile - 51',
|
64
67
|
Date.civil(2009,1,1) => 'Anul nou',
|
65
68
|
Date.civil(2014,1,2) => 'Anul nou',
|
66
69
|
Date.civil(2009,5,1) => 'Ziua muncii',
|
data/definitions/se.yaml
CHANGED
@@ -6,32 +6,37 @@
|
|
6
6
|
# - http://www.worldtravelguide.net/country/269/public_holidays/Europe/Sweden.html
|
7
7
|
# - http://hem.passagen.se/farila/midsum.htm
|
8
8
|
# - http://www.timeanddate.com/calendar/?country=21
|
9
|
-
---
|
9
|
+
---
|
10
10
|
months:
|
11
|
-
0:
|
11
|
+
0:
|
12
12
|
- name: Långfredagen
|
13
13
|
regions: [se]
|
14
|
-
function: easter(year)
|
14
|
+
function: easter(year)
|
15
|
+
function_modifier: -2
|
15
16
|
- name: Påskafton
|
16
17
|
regions: [se]
|
17
|
-
function: easter(year)
|
18
|
+
function: easter(year)
|
19
|
+
function_modifier: -1
|
18
20
|
type: informal
|
19
21
|
- name: Påskdagen
|
20
22
|
regions: [se]
|
21
23
|
function: easter(year)
|
22
24
|
- name: Annandag påsk
|
23
25
|
regions: [se]
|
24
|
-
function: easter(year)
|
26
|
+
function: easter(year)
|
27
|
+
function_modifier: 1
|
25
28
|
- name: Kristi himmelsfärdsdag # Ascension Day
|
26
29
|
regions: [se]
|
27
|
-
function: easter(year)
|
30
|
+
function: easter(year)
|
31
|
+
function_modifier: 39
|
28
32
|
- name: Pingstdagen # Whitsunday
|
29
33
|
regions: [se]
|
30
|
-
function: easter(year)
|
34
|
+
function: easter(year)
|
35
|
+
function_modifier: 49
|
31
36
|
- name: Alla helgons dag # All Saint's Day
|
32
37
|
regions: [se]
|
33
38
|
function: se_alla_helgons_dag(year)
|
34
|
-
1:
|
39
|
+
1:
|
35
40
|
- name: Nyårsdagen
|
36
41
|
regions: [se]
|
37
42
|
mday: 1
|
@@ -51,7 +56,8 @@ months:
|
|
51
56
|
function: se_midsommardagen(year)
|
52
57
|
- name: Midsommarafton
|
53
58
|
regions: [se]
|
54
|
-
function: se_midsommardagen(year)
|
59
|
+
function: se_midsommardagen(year)
|
60
|
+
function_modifier: -1
|
55
61
|
type: informal
|
56
62
|
12:
|
57
63
|
- name: Julafton
|
@@ -69,26 +75,26 @@ months:
|
|
69
75
|
mday: 31
|
70
76
|
type: informal
|
71
77
|
methods:
|
72
|
-
se_midsommardagen:
|
78
|
+
se_midsommardagen:
|
73
79
|
# Sweden: Mid-summer (Saturday between June 20–26)
|
74
|
-
|
80
|
+
arguments: year
|
81
|
+
source: |
|
75
82
|
date = Date.civil(year,6,20)
|
76
83
|
date += (6 - date.wday)
|
77
84
|
date
|
78
|
-
|
79
|
-
se_alla_helgons_dag: |
|
85
|
+
se_alla_helgons_dag:
|
80
86
|
# Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
|
81
|
-
|
87
|
+
arguments: year
|
88
|
+
source: |
|
82
89
|
date = Date.civil(year,10,31)
|
83
90
|
date += (6 - date.wday)
|
84
91
|
date
|
85
|
-
end
|
86
92
|
tests: |
|
87
|
-
{Date.civil(2008,1,1) => 'Nyårsdagen',
|
93
|
+
{Date.civil(2008,1,1) => 'Nyårsdagen',
|
88
94
|
Date.civil(2008,1,6) => 'Trettondedag jul',
|
89
95
|
Date.civil(2008,3,21) => 'Långfredagen',
|
90
96
|
Date.civil(2008,3,22) => 'Påskafton',
|
91
|
-
Date.civil(2008,3,23) => 'Påskdagen',
|
97
|
+
Date.civil(2008,3,23) => 'Påskdagen',
|
92
98
|
Date.civil(2008,3,24) => 'Annandag påsk',
|
93
99
|
Date.civil(2008,5,1) => 'Första maj',
|
94
100
|
Date.civil(2008,5,1) => 'Kristi himmelsfärdsdag',
|
@@ -111,4 +117,4 @@ tests: |
|
|
111
117
|
Date.civil(2008,12,31) => 'Nyårsafton'
|
112
118
|
}.each do |date, name|
|
113
119
|
assert_equal name, (Holidays.on(date, :se, :informal)[0] || {})[:name]
|
114
|
-
end
|
120
|
+
end
|