holidays 0.9.3 → 1.0.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.
- data/.gitignore +3 -0
- data/CHANGELOG +7 -0
- data/{README → README.rdoc} +36 -39
- data/data/SYNTAX +1 -1
- data/data/au.yaml +110 -105
- data/data/build_defs.rb +4 -3
- data/data/ca.yaml +140 -140
- data/data/cz.yaml +68 -0
- data/data/de.yaml +12 -14
- data/data/dk.yaml +1 -1
- data/data/es.yaml +1 -1
- data/data/fr.yaml +1 -1
- data/data/gb.yaml +1 -1
- data/data/ie.yaml +1 -1
- data/data/index.yaml +7 -2
- data/data/is.yaml +1 -1
- data/data/it.yaml +1 -1
- data/data/mx.yaml +1 -1
- data/data/nl.yaml +1 -1
- data/data/no.yaml +82 -0
- data/data/nyse.yaml +1 -1
- data/data/nz.yaml +141 -0
- data/data/pt.yaml +1 -1
- data/data/se.yaml +1 -1
- data/data/united_nations.yaml +188 -188
- data/data/ups.yaml +55 -55
- data/data/us.yaml +80 -80
- data/data/za.yaml +1 -1
- data/holidays.gemspec +155 -0
- data/lib/holidays.rb +424 -403
- data/lib/holidays/MANIFEST +28 -25
- data/lib/holidays/au.rb +43 -41
- data/lib/holidays/ca.rb +69 -68
- data/lib/holidays/cz.rb +36 -0
- data/lib/holidays/de.rb +51 -52
- data/lib/holidays/dk.rb +48 -47
- data/lib/holidays/es.rb +53 -52
- data/lib/holidays/europe.rb +236 -215
- data/lib/holidays/fr.rb +37 -36
- data/lib/holidays/gb.rb +41 -40
- data/lib/holidays/ie.rb +33 -32
- data/lib/holidays/is.rb +62 -61
- data/lib/holidays/it.rb +36 -35
- data/lib/holidays/mx.rb +52 -51
- data/lib/holidays/nl.rb +37 -36
- data/lib/holidays/no.rb +40 -0
- data/lib/holidays/north_america.rb +108 -107
- data/lib/holidays/nyse.rb +33 -32
- data/lib/holidays/nz.rb +69 -0
- data/lib/holidays/pt.rb +38 -52
- data/lib/holidays/scandinavia.rb +124 -114
- data/lib/holidays/se.rb +53 -52
- data/lib/holidays/united_nations.rb +25 -24
- data/lib/holidays/ups.rb +32 -31
- data/lib/holidays/us.rb +49 -48
- data/lib/holidays/za.rb +36 -35
- data/rakefile.rb +105 -113
- data/test/defs/test_defs_au.rb +36 -36
- data/test/defs/test_defs_ca.rb +29 -29
- data/test/defs/test_defs_cz.rb +26 -0
- data/test/defs/test_defs_de.rb +51 -46
- data/test/defs/test_defs_dk.rb +30 -30
- data/test/defs/test_defs_es.rb +57 -57
- data/test/defs/test_defs_europe.rb +280 -240
- data/test/defs/test_defs_fr.rb +26 -26
- data/test/defs/test_defs_gb.rb +36 -36
- data/test/defs/test_defs_ie.rb +21 -21
- data/test/defs/test_defs_is.rb +33 -33
- data/test/defs/test_defs_it.rb +25 -25
- data/test/defs/test_defs_mx.rb +22 -22
- data/test/defs/test_defs_nl.rb +24 -24
- data/test/defs/test_defs_no.rb +29 -0
- data/test/defs/test_defs_north_america.rb +54 -54
- data/test/defs/test_defs_nyse.rb +22 -22
- data/test/defs/test_defs_nz.rb +22 -0
- data/test/defs/test_defs_pt.rb +32 -32
- data/test/defs/test_defs_scandinavia.rb +94 -75
- data/test/defs/test_defs_se.rb +32 -32
- data/test/defs/test_defs_ups.rb +21 -21
- data/test/defs/test_defs_us.rb +23 -23
- data/test/defs/test_defs_za.rb +25 -25
- data/test/test_date.rb +123 -0
- data/test/test_helper.rb +22 -0
- data/test/test_holidays.rb +128 -0
- data/test/test_multiple_regions.rb +24 -0
- metadata +126 -73
data/.gitignore
ADDED
data/CHANGELOG
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
= Ruby Holidays Gem CHANGELOG
|
2
2
|
|
3
|
+
== 1.0.0
|
4
|
+
* Support calculating mday from negative weeks other than -1 (thanks http://github.com/bjeanes)
|
5
|
+
* Use class method to check leap years and fixed bug in Date.calculate_mday
|
6
|
+
(thanks http://github.com/dgrambow)
|
7
|
+
* Added Czech (thanks http://github.com/boblin), Brazilian (http://github.com/fabiokr), Norwegian (thanks to Peter Skeide) and Australia/Brisbane (http://github.com/bjeanes) definitions
|
8
|
+
* Cleaned up rake and gemspec
|
9
|
+
|
3
10
|
== 0.9.3
|
4
11
|
* Added New York Stock Exchange holidays (thank you Alan Larkin).
|
5
12
|
* Added UPS holidays (thank you Tim Anglade).
|
data/{README → README.rdoc}
RENAMED
@@ -1,76 +1,73 @@
|
|
1
1
|
= Ruby Holidays Gem
|
2
2
|
|
3
3
|
A set of functions to deal with holidays in Ruby.
|
4
|
-
|
4
|
+
|
5
5
|
Extends Ruby's built-in Date class and supports custom holiday definition lists.
|
6
|
-
|
6
|
+
|
7
7
|
=== Installation
|
8
|
-
|
9
|
-
To install the gem from
|
10
|
-
|
8
|
+
|
9
|
+
To install the gem from RubyGems:
|
10
|
+
|
11
11
|
gem install holidays
|
12
|
-
|
13
|
-
Or, download the source <tt>.tgz</tt> file from http://rubyforge.org/holidays and
|
14
|
-
extract it somewhere in your include path.
|
15
|
-
|
12
|
+
|
16
13
|
=== Examples
|
17
|
-
|
14
|
+
|
18
15
|
For more information, see the notes at the top of the Holidays module.
|
19
|
-
|
16
|
+
|
20
17
|
==== Using the Holidays class
|
21
18
|
Get all holidays on April 25, 2008 in Australia.
|
22
19
|
date = Date.civil(2008,4,25)
|
23
|
-
|
20
|
+
|
24
21
|
Holidays.on(date, :au)
|
25
22
|
=> [{:name => 'ANZAC Day',...}]
|
26
|
-
|
23
|
+
|
27
24
|
Get holidays that are observed on July 2, 2007 in British Columbia, Canada.
|
28
25
|
date = Date.civil(2007,7,2)
|
29
|
-
|
26
|
+
|
30
27
|
Holidays.on(date, :ca_bc, :observed)
|
31
28
|
=> [{:name => 'Canada Day',...}]
|
32
|
-
|
29
|
+
|
33
30
|
Get all holidays in July, 2008 in Canada and the US.
|
34
31
|
from = Date.civil(2008,7,1)
|
35
|
-
to
|
36
|
-
|
32
|
+
to = Date.civil(2008,7,31)
|
33
|
+
|
37
34
|
Holidays.between(from, to, :ca, :us)
|
38
35
|
=> [{:name => 'Canada Day',...}
|
39
36
|
{:name => 'Independence Day',...}]
|
40
|
-
|
37
|
+
|
41
38
|
Get informal holidays in February.
|
42
39
|
from = Date.civil(2008,2,1)
|
43
|
-
to
|
44
|
-
|
40
|
+
to = Date.civil(2008,2,15)
|
41
|
+
|
45
42
|
Holidays.between(from, to)
|
46
43
|
=> [{:name => 'Valentine\'s Day',...}]
|
47
|
-
|
48
|
-
|
44
|
+
|
45
|
+
|
49
46
|
==== Extending Ruby's Date class
|
50
47
|
Check which holidays occur in Iceland on January 1, 2008.
|
51
48
|
d = Date.civil(2008,7,1)
|
52
|
-
|
49
|
+
|
53
50
|
d.holidays(:is)
|
54
51
|
=> [{:name => 'Nýársdagur'}...]
|
55
|
-
|
52
|
+
|
56
53
|
Lookup Canada Day in different regions.
|
57
54
|
d = Date.civil(2008,7,1)
|
58
|
-
|
59
|
-
d.holiday?(:ca)
|
55
|
+
|
56
|
+
d.holiday?(:ca) # Canada
|
60
57
|
=> true
|
61
|
-
|
62
|
-
d.holiday?(:ca_bc)
|
58
|
+
|
59
|
+
d.holiday?(:ca_bc) # British Columbia, Canada
|
63
60
|
=> true
|
64
|
-
|
65
|
-
d.holiday?(:fr)
|
61
|
+
|
62
|
+
d.holiday?(:fr) # France
|
66
63
|
=> false
|
67
|
-
|
64
|
+
|
68
65
|
=== Credits and code
|
69
|
-
|
70
|
-
*
|
71
|
-
*
|
72
|
-
*
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
Made on Vancouver Island.
|
66
|
+
|
67
|
+
* Source: https://github.com/alexdunae/holidays
|
68
|
+
* Docs: http://rdoc.info/github/alexdunae/holidays/master/frames
|
69
|
+
* Contributors: https://github.com/alexdunae/holidays/contributors
|
70
|
+
|
71
|
+
Started by Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-10.
|
72
|
+
|
73
|
+
Made on Vancouver Island.
|
data/data/SYNTAX
CHANGED
@@ -101,7 +101,7 @@ All definition files should have tests included. In the YAML file, tests are ju
|
|
101
101
|
Date.civil(2008,9,1) => 'Labour Day',
|
102
102
|
Date.civil(2008,12,25) => 'Christmas Day',
|
103
103
|
Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
|
104
|
-
assert_equal name, Holidays.on(date, :ca, :informal)[0][:name]
|
104
|
+
assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
|
105
105
|
end
|
106
106
|
|
107
107
|
# Victoria Day
|
data/data/au.yaml
CHANGED
@@ -1,106 +1,111 @@
|
|
1
|
-
# Australian holiday definitions for the Ruby Holiday gem.
|
2
|
-
# Updated: 2008-11-29.
|
3
|
-
# Sources:
|
4
|
-
# - http://en.wikipedia.org/wiki/Australian_public_holidays
|
5
|
-
# - http://www.docep.wa.gov.au/lr/LabourRelations/Content/Wages%20and%20Conditions/Public%20Holidays/Public_Holidays.html
|
6
|
-
# - http://www.wst.tas.gov.au/employment_info/public_holidays
|
7
|
-
# TODO: missing some regional holidays
|
8
|
-
---
|
9
|
-
months:
|
10
|
-
0:
|
11
|
-
- name: Good Friday
|
12
|
-
regions: [au]
|
13
|
-
function: easter(year)-2
|
14
|
-
- name: Easter Saturday
|
15
|
-
regions: [au]
|
16
|
-
function: easter(year)-1
|
17
|
-
- name: Easter Monday
|
18
|
-
regions: [au]
|
19
|
-
function: easter(year)+1
|
20
|
-
- name: Easter Monday
|
21
|
-
regions: [au_tas]
|
22
|
-
function: easter(year)+2
|
23
|
-
1:
|
24
|
-
- name: New Year's Day
|
25
|
-
regions: [au]
|
26
|
-
mday: 1
|
27
|
-
- name: Australia Day
|
28
|
-
regions: [au]
|
29
|
-
mday: 26
|
30
|
-
3:
|
31
|
-
- name: Labour Day
|
32
|
-
regions: [au_wa]
|
33
|
-
week: 1
|
34
|
-
wday: 1
|
35
|
-
- name: Eight Hours Day
|
36
|
-
regions: [au_tas]
|
37
|
-
week: 2
|
38
|
-
wday: 1
|
39
|
-
- name: Labour Day
|
40
|
-
regions: [au_vic]
|
41
|
-
week: 2
|
42
|
-
wday: 1
|
43
|
-
4:
|
44
|
-
- name: ANZAC Day
|
45
|
-
regions: [au]
|
46
|
-
mday: 25
|
47
|
-
5:
|
48
|
-
- name: Labour Day
|
49
|
-
regions: [au_qld]
|
50
|
-
week: 1
|
51
|
-
wday: 1
|
52
|
-
- name: May Day
|
53
|
-
regions: [au_nt]
|
54
|
-
week: 1
|
55
|
-
wday: 1
|
56
|
-
6:
|
57
|
-
- name: Foundation Day
|
58
|
-
regions: [au_wa]
|
59
|
-
week: 1
|
60
|
-
wday: 1
|
61
|
-
- name: Queen's Birthday
|
62
|
-
regions: [au_act, au_nsw, au_sa, au_tas, au_nt, au_qld, au_vic]
|
63
|
-
week: 2
|
64
|
-
wday: 1
|
65
|
-
- name: Queensland Day
|
66
|
-
regions: [au_qld]
|
67
|
-
mday: 6
|
68
|
-
type: informal
|
69
|
-
|
70
|
-
- name:
|
71
|
-
regions: [
|
72
|
-
week:
|
73
|
-
wday:
|
74
|
-
|
75
|
-
- name:
|
76
|
-
regions: [
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
Date.civil(2007,
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
1
|
+
# Australian holiday definitions for the Ruby Holiday gem.
|
2
|
+
# Updated: 2008-11-29.
|
3
|
+
# Sources:
|
4
|
+
# - http://en.wikipedia.org/wiki/Australian_public_holidays
|
5
|
+
# - http://www.docep.wa.gov.au/lr/LabourRelations/Content/Wages%20and%20Conditions/Public%20Holidays/Public_Holidays.html
|
6
|
+
# - http://www.wst.tas.gov.au/employment_info/public_holidays
|
7
|
+
# TODO: missing some regional holidays
|
8
|
+
---
|
9
|
+
months:
|
10
|
+
0:
|
11
|
+
- name: Good Friday
|
12
|
+
regions: [au]
|
13
|
+
function: easter(year)-2
|
14
|
+
- name: Easter Saturday
|
15
|
+
regions: [au]
|
16
|
+
function: easter(year)-1
|
17
|
+
- name: Easter Monday
|
18
|
+
regions: [au]
|
19
|
+
function: easter(year)+1
|
20
|
+
- name: Easter Monday
|
21
|
+
regions: [au_tas]
|
22
|
+
function: easter(year)+2
|
23
|
+
1:
|
24
|
+
- name: New Year's Day
|
25
|
+
regions: [au]
|
26
|
+
mday: 1
|
27
|
+
- name: Australia Day
|
28
|
+
regions: [au]
|
29
|
+
mday: 26
|
30
|
+
3:
|
31
|
+
- name: Labour Day
|
32
|
+
regions: [au_wa]
|
33
|
+
week: 1
|
34
|
+
wday: 1
|
35
|
+
- name: Eight Hours Day
|
36
|
+
regions: [au_tas]
|
37
|
+
week: 2
|
38
|
+
wday: 1
|
39
|
+
- name: Labour Day
|
40
|
+
regions: [au_vic]
|
41
|
+
week: 2
|
42
|
+
wday: 1
|
43
|
+
4:
|
44
|
+
- name: ANZAC Day
|
45
|
+
regions: [au]
|
46
|
+
mday: 25
|
47
|
+
5:
|
48
|
+
- name: Labour Day
|
49
|
+
regions: [au_qld]
|
50
|
+
week: 1
|
51
|
+
wday: 1
|
52
|
+
- name: May Day
|
53
|
+
regions: [au_nt]
|
54
|
+
week: 1
|
55
|
+
wday: 1
|
56
|
+
6:
|
57
|
+
- name: Foundation Day
|
58
|
+
regions: [au_wa]
|
59
|
+
week: 1
|
60
|
+
wday: 1
|
61
|
+
- name: Queen's Birthday
|
62
|
+
regions: [au_act, au_nsw, au_sa, au_tas, au_nt, au_qld, au_vic]
|
63
|
+
week: 2
|
64
|
+
wday: 1
|
65
|
+
- name: Queensland Day
|
66
|
+
regions: [au_qld]
|
67
|
+
mday: 6
|
68
|
+
type: informal
|
69
|
+
8:
|
70
|
+
- name: Ekka
|
71
|
+
regions: [au_qld_brisbane]
|
72
|
+
week: -3
|
73
|
+
wday: 3
|
74
|
+
10:
|
75
|
+
- name: Labour Day
|
76
|
+
regions: [au_act, au_nsw, au_sa]
|
77
|
+
week: 1
|
78
|
+
wday: 1
|
79
|
+
12:
|
80
|
+
- name: Christmas Day
|
81
|
+
regions: [au]
|
82
|
+
mday: 25
|
83
|
+
- name: Boxing Day
|
84
|
+
regions: [au]
|
85
|
+
mday: 26
|
86
|
+
tests: |
|
87
|
+
{Date.civil(2007,1,1) => 'New Year\'s Day',
|
88
|
+
Date.civil(2007,1,26) => 'Australia Day',
|
89
|
+
Date.civil(2007,4,6) => 'Good Friday',
|
90
|
+
Date.civil(2007,4,9) => 'Easter Monday',
|
91
|
+
Date.civil(2007,4,25) => 'ANZAC Day',
|
92
|
+
Date.civil(2007,12,25) => 'Christmas Day',
|
93
|
+
Date.civil(2007,12,26) => 'Boxing Day'}.each do |date, name|
|
94
|
+
assert_equal name, (Holidays.on(date, :au, :informal)[0] || {})[:name]
|
95
|
+
end
|
96
|
+
|
97
|
+
[:au_sa, :au_act, :au_nsw, :au_].each do |r|
|
98
|
+
assert_equal 'Labour Day', Date.civil(2007,10,1).holidays(r)[0][:name]
|
99
|
+
end
|
100
|
+
|
101
|
+
[:au_sa, :au_act, :au_nsw, :au_vic, :au_tas, :au_qld, :au_nt, :au_].each do |r|
|
102
|
+
assert_equal 'Queen\'s Birthday', Date.civil(2007,6,11).holidays(r)[0][:name]
|
103
|
+
end
|
104
|
+
|
105
|
+
assert_equal 'Labour Day', Date.civil(2007,3,5).holidays(:au_wa)[0][:name]
|
106
|
+
assert_equal 'Labour Day', Date.civil(2007,3,12).holidays(:au_vic)[0][:name]
|
107
|
+
assert_equal 'Labour Day', Date.civil(2007,5,7).holidays(:au_qld)[0][:name]
|
108
|
+
|
109
|
+
assert_equal 'May Day', Date.civil(2007,5,7).holidays(:au_nt)[0][:name]
|
110
|
+
|
106
111
|
assert_equal 'Eight Hours Day', Date.civil(2007,3,12).holidays(:au_tas)[0][:name]
|
data/data/build_defs.rb
CHANGED
@@ -52,7 +52,7 @@ def parse_holiday_defs(module_name, files)
|
|
52
52
|
end
|
53
53
|
|
54
54
|
if def_file['tests']
|
55
|
-
puts " - importing
|
55
|
+
puts " - importing tests..."
|
56
56
|
test_strs << def_file['tests']
|
57
57
|
end
|
58
58
|
end
|
@@ -102,6 +102,7 @@ def parse_holiday_defs(module_name, files)
|
|
102
102
|
|
103
103
|
# Build the module file
|
104
104
|
module_src =<<-EOM
|
105
|
+
# encoding: utf-8
|
105
106
|
module Holidays
|
106
107
|
# This file is generated by the Ruby Holiday gem.
|
107
108
|
#
|
@@ -132,8 +133,8 @@ EOM
|
|
132
133
|
# Build the test file
|
133
134
|
unless test_strs.empty?
|
134
135
|
test_src =<<-EndOfTests
|
135
|
-
|
136
|
-
require
|
136
|
+
# encoding: utf-8
|
137
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
|
137
138
|
|
138
139
|
# This file is generated by the Ruby Holiday gem.
|
139
140
|
#
|
data/data/ca.yaml
CHANGED
@@ -1,141 +1,141 @@
|
|
1
|
-
# Canadian holiday definitions for the Ruby Holiday gem.
|
2
|
-
# Updated 2008-11-21.
|
3
|
-
---
|
4
|
-
months:
|
5
|
-
0:
|
6
|
-
- name: Good Friday
|
7
|
-
regions: [ca]
|
8
|
-
function: easter(year)-2
|
9
|
-
- name: Easter Monday
|
10
|
-
regions: [ca]
|
11
|
-
function: easter(year)+1
|
12
|
-
type: informal
|
13
|
-
1:
|
14
|
-
- name: New Year's Day
|
15
|
-
regions: [ca]
|
16
|
-
mday: 1
|
17
|
-
- name: New Year's
|
18
|
-
regions: [ca_qc]
|
19
|
-
mday: 2
|
20
|
-
2:
|
21
|
-
- name: Family Day
|
22
|
-
regions: [ca_ab, ca_on, ca_sk]
|
23
|
-
wday: 1
|
24
|
-
week: 3
|
25
|
-
- name: Louis Riel Day
|
26
|
-
regions: [ca_mb]
|
27
|
-
wday: 1
|
28
|
-
week: 3
|
29
|
-
3:
|
30
|
-
- name: St. Patrick's Day
|
31
|
-
regions: [ca_nf]
|
32
|
-
mday: 17
|
33
|
-
3:
|
34
|
-
- name: St. George's Day
|
35
|
-
regions: [ca_nf]
|
36
|
-
mday: 23
|
37
|
-
5:
|
38
|
-
- name: Victoria Day
|
39
|
-
regions: [ca]
|
40
|
-
function: ca_victoria_day(year)
|
41
|
-
- name: National Patriotes Day
|
42
|
-
regions: [ca_qc]
|
43
|
-
function: ca_victoria_day(year)
|
44
|
-
6:
|
45
|
-
- name: Discovery Day
|
46
|
-
regions: [ca_nf]
|
47
|
-
mday: 24
|
48
|
-
- name: Fête Nationale
|
49
|
-
regions: [ca_qc]
|
50
|
-
mday: 24
|
51
|
-
- name: National Aboriginal Day
|
52
|
-
regions: [ca_nt]
|
53
|
-
mday: 21
|
54
|
-
7:
|
55
|
-
- name: Canada Day
|
56
|
-
regions: [ca]
|
57
|
-
mday: 1
|
58
|
-
observed: to_monday_if_sunday
|
59
|
-
- name: Orangemen's Day
|
60
|
-
regions: [ca_nf]
|
61
|
-
mday: 12
|
62
|
-
- name: Nunavut Day
|
63
|
-
regions: [ca_nu]
|
64
|
-
mday: 9
|
65
|
-
8:
|
66
|
-
- name: BC Day
|
67
|
-
week: 1
|
68
|
-
regions: [ca_bc]
|
69
|
-
wday: 1
|
70
|
-
- name: Saskatchewan Day
|
71
|
-
week: 1
|
72
|
-
regions: [ca_sk]
|
73
|
-
wday: 1
|
74
|
-
- name: Heritage Day
|
75
|
-
week: 1
|
76
|
-
regions: [ca_ab]
|
77
|
-
wday: 1
|
78
|
-
- name: Natal Day
|
79
|
-
week: 1
|
80
|
-
regions: [ca_ns]
|
81
|
-
wday: 1
|
82
|
-
- name: Civic Holiday
|
83
|
-
week: 1
|
84
|
-
regions: [ca_on]
|
85
|
-
wday: 1
|
86
|
-
- name: Discovery Day
|
87
|
-
week: 3
|
88
|
-
regions: [ca_yk]
|
89
|
-
wday: 1
|
90
|
-
9:
|
91
|
-
- name: Labour Day
|
92
|
-
week: 1
|
93
|
-
regions: [ca]
|
94
|
-
wday: 1
|
95
|
-
10:
|
96
|
-
- name: Thanksgiving
|
97
|
-
week: 2
|
98
|
-
regions: [ca]
|
99
|
-
wday: 1
|
100
|
-
11:
|
101
|
-
- name: Rememberance Day
|
102
|
-
regions: [ca]
|
103
|
-
mday: 11
|
104
|
-
12:
|
105
|
-
- name: Christmas Day
|
106
|
-
regions: [ca]
|
107
|
-
mday: 25
|
108
|
-
- name: Boxing Day
|
109
|
-
regions: [ca]
|
110
|
-
mday: 26
|
111
|
-
methods:
|
112
|
-
ca_victoria_day: |
|
113
|
-
# Monday on or before May 24
|
114
|
-
def self.ca_victoria_day(year)
|
115
|
-
date = Date.civil(year,5,24)
|
116
|
-
if date.wday > 1
|
117
|
-
date -= (date.wday - 1)
|
118
|
-
elsif date.wday == 0
|
119
|
-
date -= 6
|
120
|
-
end
|
121
|
-
date
|
122
|
-
end
|
123
|
-
tests: |
|
124
|
-
{Date.civil(2008,1,1) => 'New Year\'s Day',
|
125
|
-
Date.civil(2008,3,21) => 'Good Friday',
|
126
|
-
Date.civil(2008,3,24) => 'Easter Monday',
|
127
|
-
Date.civil(2008,5,19) => 'Victoria Day',
|
128
|
-
Date.civil(2008,7,1) => 'Canada Day',
|
129
|
-
Date.civil(2008,9,1) => 'Labour Day',
|
130
|
-
Date.civil(2008,10,13) => 'Thanksgiving',
|
131
|
-
Date.civil(2008,11,11) => 'Rememberance Day',
|
132
|
-
Date.civil(2008,12,25) => 'Christmas Day',
|
133
|
-
Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
|
134
|
-
assert_equal name, Holidays.on(date, :ca, :informal)[0][:name]
|
135
|
-
end
|
136
|
-
|
137
|
-
# Victoria Day
|
138
|
-
[Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
|
139
|
-
Date.civil(2007,5,21), Date.civil(2008,5,19)].each do |date|
|
140
|
-
assert_equal 'Victoria Day', Holidays.on(date, :ca)[0][:name]
|
1
|
+
# Canadian holiday definitions for the Ruby Holiday gem.
|
2
|
+
# Updated 2008-11-21.
|
3
|
+
---
|
4
|
+
months:
|
5
|
+
0:
|
6
|
+
- name: Good Friday
|
7
|
+
regions: [ca]
|
8
|
+
function: easter(year)-2
|
9
|
+
- name: Easter Monday
|
10
|
+
regions: [ca]
|
11
|
+
function: easter(year)+1
|
12
|
+
type: informal
|
13
|
+
1:
|
14
|
+
- name: New Year's Day
|
15
|
+
regions: [ca]
|
16
|
+
mday: 1
|
17
|
+
- name: New Year's
|
18
|
+
regions: [ca_qc]
|
19
|
+
mday: 2
|
20
|
+
2:
|
21
|
+
- name: Family Day
|
22
|
+
regions: [ca_ab, ca_on, ca_sk]
|
23
|
+
wday: 1
|
24
|
+
week: 3
|
25
|
+
- name: Louis Riel Day
|
26
|
+
regions: [ca_mb]
|
27
|
+
wday: 1
|
28
|
+
week: 3
|
29
|
+
3:
|
30
|
+
- name: St. Patrick's Day
|
31
|
+
regions: [ca_nf]
|
32
|
+
mday: 17
|
33
|
+
3:
|
34
|
+
- name: St. George's Day
|
35
|
+
regions: [ca_nf]
|
36
|
+
mday: 23
|
37
|
+
5:
|
38
|
+
- name: Victoria Day
|
39
|
+
regions: [ca]
|
40
|
+
function: ca_victoria_day(year)
|
41
|
+
- name: National Patriotes Day
|
42
|
+
regions: [ca_qc]
|
43
|
+
function: ca_victoria_day(year)
|
44
|
+
6:
|
45
|
+
- name: Discovery Day
|
46
|
+
regions: [ca_nf]
|
47
|
+
mday: 24
|
48
|
+
- name: Fête Nationale
|
49
|
+
regions: [ca_qc]
|
50
|
+
mday: 24
|
51
|
+
- name: National Aboriginal Day
|
52
|
+
regions: [ca_nt]
|
53
|
+
mday: 21
|
54
|
+
7:
|
55
|
+
- name: Canada Day
|
56
|
+
regions: [ca]
|
57
|
+
mday: 1
|
58
|
+
observed: to_monday_if_sunday
|
59
|
+
- name: Orangemen's Day
|
60
|
+
regions: [ca_nf]
|
61
|
+
mday: 12
|
62
|
+
- name: Nunavut Day
|
63
|
+
regions: [ca_nu]
|
64
|
+
mday: 9
|
65
|
+
8:
|
66
|
+
- name: BC Day
|
67
|
+
week: 1
|
68
|
+
regions: [ca_bc]
|
69
|
+
wday: 1
|
70
|
+
- name: Saskatchewan Day
|
71
|
+
week: 1
|
72
|
+
regions: [ca_sk]
|
73
|
+
wday: 1
|
74
|
+
- name: Heritage Day
|
75
|
+
week: 1
|
76
|
+
regions: [ca_ab]
|
77
|
+
wday: 1
|
78
|
+
- name: Natal Day
|
79
|
+
week: 1
|
80
|
+
regions: [ca_ns]
|
81
|
+
wday: 1
|
82
|
+
- name: Civic Holiday
|
83
|
+
week: 1
|
84
|
+
regions: [ca_on]
|
85
|
+
wday: 1
|
86
|
+
- name: Discovery Day
|
87
|
+
week: 3
|
88
|
+
regions: [ca_yk]
|
89
|
+
wday: 1
|
90
|
+
9:
|
91
|
+
- name: Labour Day
|
92
|
+
week: 1
|
93
|
+
regions: [ca]
|
94
|
+
wday: 1
|
95
|
+
10:
|
96
|
+
- name: Thanksgiving
|
97
|
+
week: 2
|
98
|
+
regions: [ca]
|
99
|
+
wday: 1
|
100
|
+
11:
|
101
|
+
- name: Rememberance Day
|
102
|
+
regions: [ca]
|
103
|
+
mday: 11
|
104
|
+
12:
|
105
|
+
- name: Christmas Day
|
106
|
+
regions: [ca]
|
107
|
+
mday: 25
|
108
|
+
- name: Boxing Day
|
109
|
+
regions: [ca]
|
110
|
+
mday: 26
|
111
|
+
methods:
|
112
|
+
ca_victoria_day: |
|
113
|
+
# Monday on or before May 24
|
114
|
+
def self.ca_victoria_day(year)
|
115
|
+
date = Date.civil(year,5,24)
|
116
|
+
if date.wday > 1
|
117
|
+
date -= (date.wday - 1)
|
118
|
+
elsif date.wday == 0
|
119
|
+
date -= 6
|
120
|
+
end
|
121
|
+
date
|
122
|
+
end
|
123
|
+
tests: |
|
124
|
+
{Date.civil(2008,1,1) => 'New Year\'s Day',
|
125
|
+
Date.civil(2008,3,21) => 'Good Friday',
|
126
|
+
Date.civil(2008,3,24) => 'Easter Monday',
|
127
|
+
Date.civil(2008,5,19) => 'Victoria Day',
|
128
|
+
Date.civil(2008,7,1) => 'Canada Day',
|
129
|
+
Date.civil(2008,9,1) => 'Labour Day',
|
130
|
+
Date.civil(2008,10,13) => 'Thanksgiving',
|
131
|
+
Date.civil(2008,11,11) => 'Rememberance Day',
|
132
|
+
Date.civil(2008,12,25) => 'Christmas Day',
|
133
|
+
Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
|
134
|
+
assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
|
135
|
+
end
|
136
|
+
|
137
|
+
# Victoria Day
|
138
|
+
[Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
|
139
|
+
Date.civil(2007,5,21), Date.civil(2008,5,19)].each do |date|
|
140
|
+
assert_equal 'Victoria Day', Holidays.on(date, :ca)[0][:name]
|
141
141
|
end
|