holidays 2.0.0 → 2.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +3 -1
- data/data/au.yaml +49 -5
- data/data/jp.yaml +15 -1
- data/data/nz.yaml +11 -1
- data/data/sk.yaml +10 -6
- data/lib/holidays/au.rb +32 -7
- data/lib/holidays/europe.rb +3 -2
- data/lib/holidays/jp.rb +10 -1
- data/lib/holidays/nz.rb +3 -2
- data/lib/holidays/sk.rb +4 -3
- data/lib/holidays/version.rb +1 -1
- data/test/defs/test_defs_au.rb +14 -0
- data/test/defs/test_defs_europe.rb +3 -2
- data/test/defs/test_defs_jp.rb +3 -0
- data/test/defs/test_defs_nz.rb +8 -0
- data/test/defs/test_defs_sk.rb +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa61e29b2f89d86de3786a510f1fad83961b834c
|
4
|
+
data.tar.gz: 7018c5e32b6f23c09daa46f0c8fe397c03e026b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24d5aeae9b85a30eee244197d5f33486c240a8842510b58fa9938c7d5b440d122ebbd2ad7430ec2bceab7827ff066a0b5b1c7c8e698c55e9ba7f6de2a6296f4d
|
7
|
+
data.tar.gz: f628f94e2de462f34ff82eb8da002f6a97c16a2a1e185abce30e0a0c325f90ec12168e585778bd235b2e1f0f0dfd729b1c70e60f84ce699c7d63ae996f204c5d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Ruby Holidays Gem CHANGELOG
|
2
2
|
|
3
|
+
## 2.1.0
|
4
|
+
|
5
|
+
* Updated Slovak holiday definitions (https://github.com/guitarman)
|
6
|
+
* Fix Japanese non-Monday substitute holidays (https://github.com/shuhei)
|
7
|
+
* Fixed typo in Slovak holiday definitions (https://github.com/martinsabo)
|
8
|
+
* Updated New Zealand definitions to reflect new weekend-to-monday rules (https://github.com/SebastianEdwards)
|
9
|
+
* Fix Australian definitions (https://github.com/ghiculescu)
|
10
|
+
|
3
11
|
## 2.0.0
|
4
12
|
|
5
13
|
* Add test coverage
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ To install the gem from RubyGems:
|
|
12
12
|
|
13
13
|
gem install holidays
|
14
14
|
|
15
|
-
The Holidays gem is tested on Ruby 1.
|
15
|
+
The Holidays gem is tested on Ruby 1.9.2, 1.9.3, 2.0.0, 2.1.0, 2.2.0 and JRuby.
|
16
16
|
|
17
17
|
## Time zones
|
18
18
|
|
@@ -104,6 +104,8 @@ If you are checking holidays regularly you can cache your results for improved p
|
|
104
104
|
|
105
105
|
Holidays for the regions specified within the dates specified will be pre-calculated.
|
106
106
|
|
107
|
+
See the [original pull request](https://github.com/alexdunae/holidays/pull/36) for more details.
|
108
|
+
|
107
109
|
### How to contribute
|
108
110
|
|
109
111
|
To make changes to any of the definitions, edit the YAML files only.
|
data/data/au.yaml
CHANGED
@@ -15,14 +15,11 @@ months:
|
|
15
15
|
regions: [au_nsw, au_vic, au_qld, au_nt, au_act, au_sa, au_qld_brisbane, au_qld_cairns]
|
16
16
|
function: easter(year)-1
|
17
17
|
- name: Easter Sunday
|
18
|
-
regions: [au_nsw]
|
18
|
+
regions: [au_nsw, au_vic]
|
19
19
|
function: easter(year)
|
20
20
|
- name: Easter Monday
|
21
21
|
regions: [au]
|
22
22
|
function: easter(year)+1
|
23
|
-
- name: Easter Monday
|
24
|
-
regions: [au_tas]
|
25
|
-
function: easter(year)+2
|
26
23
|
1:
|
27
24
|
- name: New Year's Day
|
28
25
|
regions: [au]
|
@@ -50,10 +47,20 @@ months:
|
|
50
47
|
regions: [au_vic]
|
51
48
|
week: 2
|
52
49
|
wday: 1
|
50
|
+
- name: March Public Holiday
|
51
|
+
regions: [au_sa]
|
52
|
+
function: march_pub_hol_sa(year)
|
53
53
|
4:
|
54
54
|
- name: ANZAC Day
|
55
55
|
regions: [au]
|
56
56
|
mday: 25
|
57
|
+
- name: ANZAC Day
|
58
|
+
regions: [au_nsw, au_vic, au_qld, au_nt, au_act, au_sa, au_tas]
|
59
|
+
mday: 25
|
60
|
+
observed: to_monday_if_sunday
|
61
|
+
- name: ANZAC Day
|
62
|
+
regions: [au_wa]
|
63
|
+
mday: 25
|
57
64
|
observed: to_monday_if_weekend
|
58
65
|
5:
|
59
66
|
- name: Labour Day
|
@@ -63,6 +70,9 @@ months:
|
|
63
70
|
regions: [au_nt]
|
64
71
|
week: 1
|
65
72
|
wday: 1
|
73
|
+
- name: May Public Holiday
|
74
|
+
regions: [au_sa]
|
75
|
+
function: may_pub_hol_sa(year)
|
66
76
|
6:
|
67
77
|
- name: Foundation Day
|
68
78
|
regions: [au_wa]
|
@@ -164,6 +174,26 @@ methods:
|
|
164
174
|
fourth_sat_in_oct = Date.civil(year, 10, Date.calculate_mday(year, 10, 4, :saturday))
|
165
175
|
fourth_sat_in_oct - 2 # the thursday before
|
166
176
|
end
|
177
|
+
march_pub_hol_sa: |
|
178
|
+
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
179
|
+
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
180
|
+
def self.march_pub_hol_sa(year)
|
181
|
+
if year < 2006
|
182
|
+
nil
|
183
|
+
else
|
184
|
+
Date.civil(year, 3, Date.calculate_mday(year, 3, :second, :monday))
|
185
|
+
end
|
186
|
+
end
|
187
|
+
may_pub_hol_sa: |
|
188
|
+
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
189
|
+
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
190
|
+
def self.may_pub_hol_sa(year)
|
191
|
+
if year >= 2006
|
192
|
+
nil
|
193
|
+
else
|
194
|
+
Date.civil(year, 5, Date.calculate_mday(year, 5, :third, :monday))
|
195
|
+
end
|
196
|
+
end
|
167
197
|
tests: |
|
168
198
|
{Date.civil(2007,1,1) => 'New Year\'s Day',
|
169
199
|
Date.civil(2007,1,26) => 'Australia Day',
|
@@ -234,4 +264,18 @@ tests: |
|
|
234
264
|
assert_equal 'Royal Hobart Regatta', Date.civil(2012, 2, 13).holidays(:au_tas_south)[0][:name]
|
235
265
|
assert_equal 'Royal Hobart Regatta', Date.civil(2014, 2, 10).holidays(:au_tas_south)[0][:name]
|
236
266
|
assert_equal 'Royal Hobart Regatta', Date.civil(2015, 2, 9).holidays(:au_tas_south)[0][:name]
|
237
|
-
assert_equal 'Royal Hobart Regatta', Date.civil(2016, 2, 8).holidays(:au_tas_south)[0][:name]
|
267
|
+
assert_equal 'Royal Hobart Regatta', Date.civil(2016, 2, 8).holidays(:au_tas_south)[0][:name]
|
268
|
+
|
269
|
+
assert_equal "May Public Holiday", Date.civil(2005, 5, 16).holidays(:au_sa)[0][:name]
|
270
|
+
assert_equal [], Date.civil(2014, 5, 19).holidays(:au_sa)
|
271
|
+
|
272
|
+
assert_equal [], Date.civil(2005, 3, 14).holidays(:au_sa)
|
273
|
+
assert_equal "March Public Holiday", Date.civil(2014, 3, 10).holidays(:au_sa)[0][:name]
|
274
|
+
assert_equal "March Public Holiday", Date.civil(2015, 3, 9).holidays(:au_sa)[0][:name]
|
275
|
+
assert_equal "March Public Holiday", Date.civil(2016, 3, 14).holidays(:au_sa)[0][:name]
|
276
|
+
assert_equal "March Public Holiday", Date.civil(2017, 3, 13).holidays(:au_sa)[0][:name]
|
277
|
+
|
278
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 25).holidays(:au_qld)[0][:name]
|
279
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 25).holidays(:au_wa)[0][:name]
|
280
|
+
assert_equal [], Date.civil(2015, 4, 27).holidays(:au_qld, :observed)
|
281
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 27).holidays(:au_wa, :observed)[0][:name]
|
data/data/jp.yaml
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
# CHANGES:
|
10
10
|
# 2010-12-25: Initial version by Tatsuki Sugiura <sugi@nemui.org>
|
11
11
|
# 2014-11-09: Added substitute holiday by Yoshiyuki Hirano <yoshiyuki.hirano@henteco-labs.com>
|
12
|
+
# 2015-05-10: Non-Monday substitute holidays by Shuhei Kagawa <shuhei.kagawa@gmail.com>
|
12
13
|
#
|
13
14
|
---
|
14
15
|
months:
|
@@ -57,6 +58,9 @@ months:
|
|
57
58
|
- name: 振替休日
|
58
59
|
regions: [jp]
|
59
60
|
function: jp_substitute_holiday(year, 5, 3)
|
61
|
+
- name: 振替休日
|
62
|
+
regions: [jp]
|
63
|
+
function: jp_substitute_holiday(year, 5, 4)
|
60
64
|
- name: 振替休日
|
61
65
|
regions: [jp]
|
62
66
|
function: jp_substitute_holiday(year, 5, 5)
|
@@ -165,7 +169,14 @@ methods:
|
|
165
169
|
jp_substitute_holiday: |
|
166
170
|
def self.jp_substitute_holiday(*date)
|
167
171
|
date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
|
168
|
-
date.wday == 0 ? date+1 : nil
|
172
|
+
date.wday == 0 ? Holidays.jp_next_weekday(date+1) : nil
|
173
|
+
end
|
174
|
+
jp_next_weekday(date): |
|
175
|
+
def self.jp_next_weekday(date)
|
176
|
+
is_holiday = Holidays::JP.holidays_by_month[date.month].any? do |holiday|
|
177
|
+
holiday[:mday] == date.day
|
178
|
+
end
|
179
|
+
date.wday == 0 || is_holiday ? Holidays.jp_next_weekday(date+1) : date
|
169
180
|
end
|
170
181
|
tests: |
|
171
182
|
{Date.civil(2008,1,1) => '元日',
|
@@ -183,6 +194,9 @@ tests: |
|
|
183
194
|
Date.civil(2010,3,22) => '振替休日',
|
184
195
|
Date.civil(2008,11,24) => '振替休日',
|
185
196
|
Date.civil(2012,1,2) => '振替休日',
|
197
|
+
Date.civil(2013,5,6) => '振替休日',
|
198
|
+
Date.civil(2014,5,6) => '振替休日',
|
199
|
+
Date.civil(2015,5,6) => '振替休日'
|
186
200
|
}.each do |date, name|
|
187
201
|
assert_equal name, (Holidays.on(date, :jp, :informal)[0] || {})[:name]
|
188
202
|
end
|
data/data/nz.yaml
CHANGED
@@ -46,6 +46,7 @@ months:
|
|
46
46
|
- name: Waitangi Day
|
47
47
|
regions: [nz]
|
48
48
|
mday: 6
|
49
|
+
observed: to_monday_if_weekend
|
49
50
|
3:
|
50
51
|
- name: Otago Anniversary Day
|
51
52
|
regions: [nz_ot]
|
@@ -59,6 +60,7 @@ months:
|
|
59
60
|
- name: ANZAC Day
|
60
61
|
regions: [nz]
|
61
62
|
mday: 25
|
63
|
+
observed: to_monday_if_weekend
|
62
64
|
6:
|
63
65
|
- name: Queen's Birthday
|
64
66
|
regions: [nz]
|
@@ -117,6 +119,14 @@ tests: |
|
|
117
119
|
Date.civil(2007,12,26) => 'Boxing Day'}.each do |date, name|
|
118
120
|
assert_equal name, (Holidays.on(date, :nz, :informal)[0] || {})[:name]
|
119
121
|
end
|
122
|
+
assert_equal 'ANZAC Day', Date.civil(2015, 4, 25).holidays(:nz)[0][:name]
|
123
|
+
assert_equal 'ANZAC Day', Date.civil(2015, 4, 27).holidays(:nz, :observed)[0][:name]
|
124
|
+
assert_equal 'ANZAC Day', Date.civil(2016, 4, 25).holidays(:nz)[0][:name]
|
125
|
+
assert_equal 'ANZAC Day', Date.civil(2016, 4, 25).holidays(:nz, :observed)[0][:name]
|
126
|
+
assert_equal 'Waitangi Day', Date.civil(2015, 2, 6).holidays(:nz)[0][:name]
|
127
|
+
assert_equal 'Waitangi Day', Date.civil(2015, 2, 6).holidays(:nz, :observed)[0][:name]
|
128
|
+
assert_equal 'Waitangi Day', Date.civil(2016, 2, 6).holidays(:nz)[0][:name]
|
129
|
+
assert_equal 'Waitangi Day', Date.civil(2016, 2, 8).holidays(:nz, :observed)[0][:name]
|
120
130
|
methods:
|
121
131
|
closest_monday: |
|
122
132
|
def self.closest_monday(date)
|
@@ -138,4 +148,4 @@ methods:
|
|
138
148
|
next_week: |
|
139
149
|
def self.next_week(date)
|
140
150
|
date + 7
|
141
|
-
end
|
151
|
+
end
|
data/data/sk.yaml
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
# Updated: 2013-12-26.
|
4
4
|
# Sources:
|
5
5
|
# - http://sk.wikipedia.org/wiki/Slovensk%C3%A9_%C5%A1t%C3%A1tne_sviatky
|
6
|
-
---
|
6
|
+
---
|
7
7
|
months:
|
8
|
-
0:
|
8
|
+
0:
|
9
9
|
- name: Veľkonočný pondelok
|
10
10
|
regions: [sk]
|
11
11
|
function: easter(year)+1
|
@@ -16,11 +16,14 @@ months:
|
|
16
16
|
- name: Nový rok
|
17
17
|
regions: [sk]
|
18
18
|
mday: 1
|
19
|
+
- name: Zjavenie Pána (Traja králi)
|
20
|
+
regions: [sk]
|
21
|
+
mday: 6
|
19
22
|
5:
|
20
23
|
- name: Sviatok práce
|
21
24
|
regions: [sk]
|
22
25
|
mday: 1
|
23
|
-
- name: Deň víťazstva
|
26
|
+
- name: Deň víťazstva nad fašizmom
|
24
27
|
regions: [sk]
|
25
28
|
mday: 8
|
26
29
|
7:
|
@@ -52,15 +55,16 @@ months:
|
|
52
55
|
- name: 1. sviatok vianočný
|
53
56
|
regions: [sk]
|
54
57
|
mday: 25
|
55
|
-
- name: 2.
|
58
|
+
- name: 2. sviatok vianočný
|
56
59
|
regions: [sk]
|
57
60
|
mday: 26
|
58
61
|
tests: |
|
59
62
|
{Date.civil(2013,1,1) => 'Nový rok',
|
63
|
+
Date.civil(2013,1,6) => 'Zjavenie Pána (Traja králi)',
|
60
64
|
Date.civil(2013,3,29) => 'Veľký piatok',
|
61
65
|
Date.civil(2013,4,1) => 'Veľkonočný pondelok',
|
62
66
|
Date.civil(2013,5,1) => 'Sviatok práce',
|
63
|
-
Date.civil(2013,5,8) => 'Deň víťazstva',
|
67
|
+
Date.civil(2013,5,8) => 'Deň víťazstva nad fašizmom',
|
64
68
|
Date.civil(2013,7,5) => 'Sviatok svätého Cyrila a svätého Metoda',
|
65
69
|
Date.civil(2013,8,29) => 'Výročie Slovenského národného povstania',
|
66
70
|
Date.civil(2013,9,1) => 'Deň Ústavy Slovenskej republiky',
|
@@ -69,6 +73,6 @@ tests: |
|
|
69
73
|
Date.civil(2013,11,17) => 'Deň boja za slobodu a demokraciu',
|
70
74
|
Date.civil(2013,12,24) => 'Štedrý deň',
|
71
75
|
Date.civil(2013,12,25) => '1. sviatok vianočný',
|
72
|
-
Date.civil(2013,12,26) => '2.
|
76
|
+
Date.civil(2013,12,26) => '2. sviatok vianočný'}.each do |date, name|
|
73
77
|
assert_equal name, (Holidays.on(date, :sk, :informal)[0] || {})[:name]
|
74
78
|
end
|
data/lib/holidays/au.rb
CHANGED
@@ -13,25 +13,28 @@ module Holidays
|
|
13
13
|
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module AU # :nodoc:
|
15
15
|
def self.defined_regions
|
16
|
-
[:au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_qld_brisbane, :au_qld_cairns, :
|
16
|
+
[:au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_qld_brisbane, :au_qld_cairns, :au_tas_south, :au_wa, :au_tas, :au_tas_north]
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.holidays_by_month
|
20
20
|
{
|
21
21
|
0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:au]},
|
22
22
|
{:function => lambda { |year| Holidays.easter(year)-1 }, :function_id => "easter(year)-1", :name => "Easter Saturday", :regions => [:au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_qld_brisbane, :au_qld_cairns]},
|
23
|
-
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:au_nsw]},
|
24
|
-
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:au]},
|
25
|
-
{:function => lambda { |year| Holidays.easter(year)+2 }, :function_id => "easter(year)+2", :name => "Easter Monday", :regions => [:au_tas]}],
|
23
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:au_nsw, :au_vic]},
|
24
|
+
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:au]}],
|
26
25
|
1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "New Year's Day", :regions => [:au]},
|
27
26
|
{:mday => 26, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Australia Day", :regions => [:au]}],
|
28
27
|
2 => [{:wday => 1, :week => 2, :name => "Royal Hobart Regatta", :regions => [:au_tas_south]}],
|
29
28
|
3 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_wa]},
|
30
29
|
{:wday => 1, :week => 2, :name => "Eight Hours Day", :regions => [:au_tas]},
|
31
|
-
{:wday => 1, :week => 2, :name => "Labour Day", :regions => [:au_vic]}
|
32
|
-
|
30
|
+
{:wday => 1, :week => 2, :name => "Labour Day", :regions => [:au_vic]},
|
31
|
+
{:function => lambda { |year| Holidays.march_pub_hol_sa(year) }, :function_id => "march_pub_hol_sa(year)", :name => "March Public Holiday", :regions => [:au_sa]}],
|
32
|
+
4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:au]},
|
33
|
+
{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "ANZAC Day", :regions => [:au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_tas]},
|
34
|
+
{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "ANZAC Day", :regions => [:au_wa]}],
|
33
35
|
5 => [{:function => lambda { |year| Holidays.qld_labour_day_may(year) }, :function_id => "qld_labour_day_may(year)", :name => "Labour Day", :regions => [:au_qld]},
|
34
|
-
{:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]}
|
36
|
+
{:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]},
|
37
|
+
{:function => lambda { |year| Holidays.may_pub_hol_sa(year) }, :function_id => "may_pub_hol_sa(year)", :name => "May Public Holiday", :regions => [:au_sa]}],
|
35
38
|
6 => [{:wday => 1, :week => 1, :name => "Foundation Day", :regions => [:au_wa]},
|
36
39
|
{:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_qld, :au_tas, :au_nt, :au_vic]},
|
37
40
|
{:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
|
@@ -88,6 +91,28 @@ def self.hobart_show_day(year)
|
|
88
91
|
end
|
89
92
|
|
90
93
|
|
94
|
+
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
95
|
+
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
96
|
+
def self.march_pub_hol_sa(year)
|
97
|
+
if year < 2006
|
98
|
+
nil
|
99
|
+
else
|
100
|
+
Date.civil(year, 3, Date.calculate_mday(year, 3, :second, :monday))
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
106
|
+
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
107
|
+
def self.may_pub_hol_sa(year)
|
108
|
+
if year >= 2006
|
109
|
+
nil
|
110
|
+
else
|
111
|
+
Date.civil(year, 5, Date.calculate_mday(year, 5, :third, :monday))
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
|
91
116
|
|
92
117
|
end
|
93
118
|
|
data/lib/holidays/europe.rb
CHANGED
@@ -173,6 +173,7 @@ module Holidays
|
|
173
173
|
{:mday => 1, :name => "Anul nou", :regions => [:ro]},
|
174
174
|
{:mday => 2, :name => "Anul nou", :regions => [:ro]},
|
175
175
|
{:mday => 1, :name => "Nový rok", :regions => [:sk]},
|
176
|
+
{:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]},
|
176
177
|
{:mday => 1, :name => "novo leto", :regions => [:si]}],
|
177
178
|
5 => [{:mday => 1, :name => "Staatsfeiertag", :regions => [:at]},
|
178
179
|
{:mday => 1, :name => "Fête du travail", :regions => [:be]},
|
@@ -210,7 +211,7 @@ module Holidays
|
|
210
211
|
{:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]},
|
211
212
|
{:mday => 1, :name => "Ziua muncii", :regions => [:ro]},
|
212
213
|
{:mday => 1, :name => "Sviatok práce", :regions => [:sk]},
|
213
|
-
{:mday => 8, :name => "Deň víťazstva", :regions => [:sk]},
|
214
|
+
{:mday => 8, :name => "Deň víťazstva nas fašizmom", :regions => [:sk]},
|
214
215
|
{:mday => 1, :name => "praznik dela", :regions => [:si]},
|
215
216
|
{:mday => 2, :name => "praznik dela", :regions => [:si]}],
|
216
217
|
8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:at]},
|
@@ -343,7 +344,7 @@ module Holidays
|
|
343
344
|
{:mday => 26, :name => "Sărbătoarea Nașterii Domnului", :regions => [:ro]},
|
344
345
|
{:mday => 24, :name => "Štedrý deň", :regions => [:sk]},
|
345
346
|
{:mday => 25, :name => "1. sviatok vianočný", :regions => [:sk]},
|
346
|
-
{:mday => 26, :name => "2.
|
347
|
+
{:mday => 26, :name => "2. sviatok vianočný", :regions => [:sk]},
|
347
348
|
{:mday => 25, :name => "božič", :regions => [:si]},
|
348
349
|
{:mday => 26, :name => "dan samostojnosti in enotnosti", :regions => [:si]}],
|
349
350
|
7 => [{:mday => 21, :name => "Fête nationale", :regions => [:be]},
|
data/lib/holidays/jp.rb
CHANGED
@@ -31,6 +31,7 @@ module Holidays
|
|
31
31
|
{:mday => 4, :name => "みどりの日", :regions => [:jp]},
|
32
32
|
{:mday => 5, :name => "こどもの日", :regions => [:jp]},
|
33
33
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 3) }, :function_id => "jp_substitute_holiday(year, 5, 3)", :name => "振替休日", :regions => [:jp]},
|
34
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 4) }, :function_id => "jp_substitute_holiday(year, 5, 4)", :name => "振替休日", :regions => [:jp]},
|
34
35
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 5) }, :function_id => "jp_substitute_holiday(year, 5, 5)", :name => "振替休日", :regions => [:jp]}],
|
35
36
|
7 => [{:wday => 1, :week => 3, :name => "海の日", :regions => [:jp]},
|
36
37
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1)) }, :function_id => "jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1))", :name => "振替休日", :regions => [:jp]}],
|
@@ -104,7 +105,15 @@ end
|
|
104
105
|
|
105
106
|
def self.jp_substitute_holiday(*date)
|
106
107
|
date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
|
107
|
-
date.wday == 0 ? date+1 : nil
|
108
|
+
date.wday == 0 ? Holidays.jp_next_weekday(date+1) : nil
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
def self.jp_next_weekday(date)
|
113
|
+
is_holiday = Holidays::JP.holidays_by_month[date.month].any? do |holiday|
|
114
|
+
holiday[:mday] == date.day
|
115
|
+
end
|
116
|
+
date.wday == 0 || is_holiday ? Holidays.jp_next_weekday(date+1) : date
|
108
117
|
end
|
109
118
|
|
110
119
|
|
data/lib/holidays/nz.rb
CHANGED
@@ -28,10 +28,10 @@ module Holidays
|
|
28
28
|
{:mday => 29, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Auckland Anniversary Day", :regions => [:nz_ak]},
|
29
29
|
{:mday => 29, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Northland Anniversary Day", :regions => [:nz_nl]}],
|
30
30
|
2 => [{:mday => 1, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Nelson Anniversary Day", :regions => [:nz_ak]},
|
31
|
-
{:mday => 6, :name => "Waitangi Day", :regions => [:nz]}],
|
31
|
+
{:mday => 6, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Waitangi Day", :regions => [:nz]}],
|
32
32
|
3 => [{:mday => 23, :observed => lambda { |date| Holidays.closest_monday(date) }, :observed_id => "closest_monday", :name => "Otago Anniversary Day", :regions => [:nz_ot]},
|
33
33
|
{:wday => 1, :week => 2, :name => "Taranaki Anniversary Day", :regions => [:nz_ak]}],
|
34
|
-
4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:nz]}],
|
34
|
+
4 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "ANZAC Day", :regions => [:nz]}],
|
35
35
|
6 => [{:wday => 1, :week => 1, :name => "Queen's Birthday", :regions => [:nz]}],
|
36
36
|
9 => [{:wday => 1, :week => 4, :name => "Dominion Day", :regions => [:nz_sc]}],
|
37
37
|
10 => [{:wday => 1, :week => 1, :observed => lambda { |date| Holidays.previous_friday(date) }, :observed_id => "previous_friday", :name => "Hawke's bay Anniversary Day", :regions => [:nz_hb]},
|
@@ -68,6 +68,7 @@ def self.next_week(date)
|
|
68
68
|
end
|
69
69
|
|
70
70
|
|
71
|
+
|
71
72
|
end
|
72
73
|
|
73
74
|
Holidays.merge_defs(Holidays::NZ.defined_regions, Holidays::NZ.holidays_by_month)
|
data/lib/holidays/sk.rb
CHANGED
@@ -20,9 +20,10 @@ module Holidays
|
|
20
20
|
{
|
21
21
|
0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Veľkonočný pondelok", :regions => [:sk]},
|
22
22
|
{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Veľký piatok", :regions => [:sk]}],
|
23
|
-
1 => [{:mday => 1, :name => "Nový rok", :regions => [:sk]}
|
23
|
+
1 => [{:mday => 1, :name => "Nový rok", :regions => [:sk]},
|
24
|
+
{:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]}],
|
24
25
|
5 => [{:mday => 1, :name => "Sviatok práce", :regions => [:sk]},
|
25
|
-
{:mday => 8, :name => "Deň víťazstva", :regions => [:sk]}],
|
26
|
+
{:mday => 8, :name => "Deň víťazstva nad fašizmom", :regions => [:sk]}],
|
26
27
|
7 => [{:mday => 5, :name => "Sviatok svätého Cyrila a svätého Metoda", :regions => [:sk]}],
|
27
28
|
8 => [{:mday => 29, :name => "Výročie Slovenského národného povstania", :regions => [:sk]}],
|
28
29
|
9 => [{:mday => 1, :name => "Deň Ústavy Slovenskej republiky", :regions => [:sk]},
|
@@ -31,7 +32,7 @@ module Holidays
|
|
31
32
|
{:mday => 17, :name => "Deň boja za slobodu a demokraciu", :regions => [:sk]}],
|
32
33
|
12 => [{:mday => 24, :name => "Štedrý deň", :regions => [:sk]},
|
33
34
|
{:mday => 25, :name => "1. sviatok vianočný", :regions => [:sk]},
|
34
|
-
{:mday => 26, :name => "2.
|
35
|
+
{:mday => 26, :name => "2. sviatok vianočný", :regions => [:sk]}]
|
35
36
|
}
|
36
37
|
end
|
37
38
|
end
|
data/lib/holidays/version.rb
CHANGED
data/test/defs/test_defs_au.rb
CHANGED
@@ -77,5 +77,19 @@ assert_equal 'Royal Hobart Regatta', Date.civil(2012, 2, 13).holidays(:au_tas_so
|
|
77
77
|
assert_equal 'Royal Hobart Regatta', Date.civil(2014, 2, 10).holidays(:au_tas_south)[0][:name]
|
78
78
|
assert_equal 'Royal Hobart Regatta', Date.civil(2015, 2, 9).holidays(:au_tas_south)[0][:name]
|
79
79
|
assert_equal 'Royal Hobart Regatta', Date.civil(2016, 2, 8).holidays(:au_tas_south)[0][:name]
|
80
|
+
|
81
|
+
assert_equal "May Public Holiday", Date.civil(2005, 5, 16).holidays(:au_sa)[0][:name]
|
82
|
+
assert_equal [], Date.civil(2014, 5, 19).holidays(:au_sa)
|
83
|
+
|
84
|
+
assert_equal [], Date.civil(2005, 3, 14).holidays(:au_sa)
|
85
|
+
assert_equal "March Public Holiday", Date.civil(2014, 3, 10).holidays(:au_sa)[0][:name]
|
86
|
+
assert_equal "March Public Holiday", Date.civil(2015, 3, 9).holidays(:au_sa)[0][:name]
|
87
|
+
assert_equal "March Public Holiday", Date.civil(2016, 3, 14).holidays(:au_sa)[0][:name]
|
88
|
+
assert_equal "March Public Holiday", Date.civil(2017, 3, 13).holidays(:au_sa)[0][:name]
|
89
|
+
|
90
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 25).holidays(:au_qld)[0][:name]
|
91
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 25).holidays(:au_wa)[0][:name]
|
92
|
+
assert_equal [], Date.civil(2015, 4, 27).holidays(:au_qld, :observed)
|
93
|
+
assert_equal "ANZAC Day", Date.civil(2015, 4, 27).holidays(:au_wa, :observed)[0][:name]
|
80
94
|
end
|
81
95
|
end
|
@@ -669,10 +669,11 @@ end
|
|
669
669
|
|
670
670
|
|
671
671
|
{Date.civil(2013,1,1) => 'Nový rok',
|
672
|
+
Date.civil(2013,1,6) => 'Zjavenie Pána (Traja králi)',
|
672
673
|
Date.civil(2013,3,29) => 'Veľký piatok',
|
673
674
|
Date.civil(2013,4,1) => 'Veľkonočný pondelok',
|
674
675
|
Date.civil(2013,5,1) => 'Sviatok práce',
|
675
|
-
Date.civil(2013,5,8) => 'Deň víťazstva',
|
676
|
+
Date.civil(2013,5,8) => 'Deň víťazstva nad fašizmom',
|
676
677
|
Date.civil(2013,7,5) => 'Sviatok svätého Cyrila a svätého Metoda',
|
677
678
|
Date.civil(2013,8,29) => 'Výročie Slovenského národného povstania',
|
678
679
|
Date.civil(2013,9,1) => 'Deň Ústavy Slovenskej republiky',
|
@@ -681,7 +682,7 @@ end
|
|
681
682
|
Date.civil(2013,11,17) => 'Deň boja za slobodu a demokraciu',
|
682
683
|
Date.civil(2013,12,24) => 'Štedrý deň',
|
683
684
|
Date.civil(2013,12,25) => '1. sviatok vianočný',
|
684
|
-
Date.civil(2013,12,26) => '2.
|
685
|
+
Date.civil(2013,12,26) => '2. sviatok vianočný'}.each do |date, name|
|
685
686
|
assert_equal name, (Holidays.on(date, :sk, :informal)[0] || {})[:name]
|
686
687
|
end
|
687
688
|
|
data/test/defs/test_defs_jp.rb
CHANGED
@@ -22,6 +22,9 @@ class JpDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
22
22
|
Date.civil(2010,3,22) => '振替休日',
|
23
23
|
Date.civil(2008,11,24) => '振替休日',
|
24
24
|
Date.civil(2012,1,2) => '振替休日',
|
25
|
+
Date.civil(2013,5,6) => '振替休日',
|
26
|
+
Date.civil(2014,5,6) => '振替休日',
|
27
|
+
Date.civil(2015,5,6) => '振替休日'
|
25
28
|
}.each do |date, name|
|
26
29
|
assert_equal name, (Holidays.on(date, :jp, :informal)[0] || {})[:name]
|
27
30
|
end
|
data/test/defs/test_defs_nz.rb
CHANGED
@@ -17,6 +17,14 @@ class NzDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
17
17
|
Date.civil(2007,12,26) => 'Boxing Day'}.each do |date, name|
|
18
18
|
assert_equal name, (Holidays.on(date, :nz, :informal)[0] || {})[:name]
|
19
19
|
end
|
20
|
+
assert_equal 'ANZAC Day', Date.civil(2015, 4, 25).holidays(:nz)[0][:name]
|
21
|
+
assert_equal 'ANZAC Day', Date.civil(2015, 4, 27).holidays(:nz, :observed)[0][:name]
|
22
|
+
assert_equal 'ANZAC Day', Date.civil(2016, 4, 25).holidays(:nz)[0][:name]
|
23
|
+
assert_equal 'ANZAC Day', Date.civil(2016, 4, 25).holidays(:nz, :observed)[0][:name]
|
24
|
+
assert_equal 'Waitangi Day', Date.civil(2015, 2, 6).holidays(:nz)[0][:name]
|
25
|
+
assert_equal 'Waitangi Day', Date.civil(2015, 2, 6).holidays(:nz, :observed)[0][:name]
|
26
|
+
assert_equal 'Waitangi Day', Date.civil(2016, 2, 6).holidays(:nz)[0][:name]
|
27
|
+
assert_equal 'Waitangi Day', Date.civil(2016, 2, 8).holidays(:nz, :observed)[0][:name]
|
20
28
|
|
21
29
|
end
|
22
30
|
end
|
data/test/defs/test_defs_sk.rb
CHANGED
@@ -8,10 +8,11 @@ class SkDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
8
8
|
|
9
9
|
def test_sk
|
10
10
|
{Date.civil(2013,1,1) => 'Nový rok',
|
11
|
+
Date.civil(2013,1,6) => 'Zjavenie Pána (Traja králi)',
|
11
12
|
Date.civil(2013,3,29) => 'Veľký piatok',
|
12
13
|
Date.civil(2013,4,1) => 'Veľkonočný pondelok',
|
13
14
|
Date.civil(2013,5,1) => 'Sviatok práce',
|
14
|
-
Date.civil(2013,5,8) => 'Deň víťazstva',
|
15
|
+
Date.civil(2013,5,8) => 'Deň víťazstva nad fašizmom',
|
15
16
|
Date.civil(2013,7,5) => 'Sviatok svätého Cyrila a svätého Metoda',
|
16
17
|
Date.civil(2013,8,29) => 'Výročie Slovenského národného povstania',
|
17
18
|
Date.civil(2013,9,1) => 'Deň Ústavy Slovenskej republiky',
|
@@ -20,7 +21,7 @@ class SkDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
20
21
|
Date.civil(2013,11,17) => 'Deň boja za slobodu a demokraciu',
|
21
22
|
Date.civil(2013,12,24) => 'Štedrý deň',
|
22
23
|
Date.civil(2013,12,25) => '1. sviatok vianočný',
|
23
|
-
Date.civil(2013,12,26) => '2.
|
24
|
+
Date.civil(2013,12,26) => '2. sviatok vianočný'}.each do |date, name|
|
24
25
|
assert_equal name, (Holidays.on(date, :sk, :informal)[0] || {})[:name]
|
25
26
|
end
|
26
27
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: holidays
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Dunae
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|