holidays 1.0.4 → 1.0.5
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/Gemfile +1 -2
- data/LICENSE +1 -1
- data/README.rdoc +8 -1
- data/data/at.yaml +3 -3
- data/data/hu.yaml +61 -0
- data/data/index.yaml +2 -1
- data/data/pt.yaml +2 -21
- data/holidays.gemspec +6 -35
- data/lib/holidays.rb +20 -3
- data/lib/holidays/europe.rb +3 -7
- data/lib/holidays/pt.rb +2 -6
- data/test/defs/test_defs_europe.rb +0 -6
- data/test/defs/test_defs_pt.rb +0 -6
- data/test/test_date.rb +0 -8
- data/test/test_holidays.rb +24 -0
- metadata +83 -160
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -9,6 +9,10 @@ Extends Ruby's built-in Date class and supports custom holiday definition lists.
|
|
9
9
|
To install the gem from RubyGems:
|
10
10
|
|
11
11
|
gem install holidays
|
12
|
+
|
13
|
+
=== Time zones
|
14
|
+
|
15
|
+
Time zones are ignored. This library assumes that all dates are within the same time zone.
|
12
16
|
|
13
17
|
=== Examples
|
14
18
|
|
@@ -67,7 +71,10 @@ Lookup Canada Day in different regions.
|
|
67
71
|
* Source: https://github.com/alexdunae/holidays
|
68
72
|
* Docs: http://rdoc.info/github/alexdunae/holidays/master/frames
|
69
73
|
* Contributors: https://github.com/alexdunae/holidays/contributors
|
74
|
+
* Build status: http://travis-ci.org/#!/alexdunae/holidays
|
70
75
|
|
71
|
-
Started by Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-
|
76
|
+
Started by Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-12.
|
77
|
+
|
78
|
+
On Twitter: @MrMrBug.
|
72
79
|
|
73
80
|
Made on Vancouver Island.
|
data/data/at.yaml
CHANGED
@@ -24,7 +24,7 @@ months:
|
|
24
24
|
- name: Neujahrstag
|
25
25
|
regions: [at]
|
26
26
|
mday: 1
|
27
|
-
- name: Heilige Drei
|
27
|
+
- name: Heilige Drei Könige
|
28
28
|
regions: [at]
|
29
29
|
mday: 6
|
30
30
|
5:
|
@@ -32,7 +32,7 @@ months:
|
|
32
32
|
regions: [at]
|
33
33
|
mday: 1
|
34
34
|
8:
|
35
|
-
- name:
|
35
|
+
- name: Mariä Himmelfahrt
|
36
36
|
regions: [at]
|
37
37
|
mday: 15
|
38
38
|
10:
|
@@ -44,7 +44,7 @@ months:
|
|
44
44
|
regions: [at]
|
45
45
|
mday: 1
|
46
46
|
12:
|
47
|
-
- name:
|
47
|
+
- name: Mariä Empfägnis
|
48
48
|
regions: [at]
|
49
49
|
mday: 8
|
50
50
|
- name: 1. Weihnachtstag
|
data/data/hu.yaml
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# Hungarian holiday definitions for the Ruby Holiday gem.
|
2
|
+
#
|
3
|
+
# Updated: 2012-03-01 by spap
|
4
|
+
---
|
5
|
+
months:
|
6
|
+
0:
|
7
|
+
- name: Húsvét hétfő
|
8
|
+
regions: [hu]
|
9
|
+
function: easter(year)+1
|
10
|
+
- name: Pünkösd hétfő
|
11
|
+
regions: [hu]
|
12
|
+
function: easter(year)+50
|
13
|
+
1:
|
14
|
+
- name: Újév
|
15
|
+
regions: [hu]
|
16
|
+
mday: 1
|
17
|
+
3:
|
18
|
+
- name: 1848/49-es forradalom és szabadságharc ünnepe
|
19
|
+
regions: [hu]
|
20
|
+
mday: 15
|
21
|
+
5:
|
22
|
+
- name: A munka ünnepe
|
23
|
+
regions: [hu]
|
24
|
+
mday: 1
|
25
|
+
8:
|
26
|
+
- name: Az államalapítás ünnepe
|
27
|
+
regions: [hu]
|
28
|
+
mday: 20
|
29
|
+
10:
|
30
|
+
- name: 1956-os forradalom és szabadságharc ünnepe
|
31
|
+
regions: [hu]
|
32
|
+
mday: 23
|
33
|
+
11:
|
34
|
+
- name: Mindenszentek
|
35
|
+
regions: [hu]
|
36
|
+
mday: 1
|
37
|
+
12:
|
38
|
+
- name: Karácsony
|
39
|
+
regions: [hu]
|
40
|
+
mday: 25
|
41
|
+
- name: Karácsony
|
42
|
+
regions: [hu]
|
43
|
+
mday: 26
|
44
|
+
tests: |
|
45
|
+
{Date.civil(2012,1,1) => 'Újév',
|
46
|
+
Date.civil(2011,1,1) => 'Újév',
|
47
|
+
Date.civil(2012,3,15) => '1848/49-es forradalom és szabadságharc ünnepe',
|
48
|
+
Date.civil(2011,4,25) => 'Húsvét hétfő',
|
49
|
+
Date.civil(2012,4,9) => 'Húsvét hétfő',
|
50
|
+
Date.civil(2012,5,1) => 'A munka ünnepe',
|
51
|
+
Date.civil(2011,6,13) => 'Pünkösd hétfő',
|
52
|
+
Date.civil(2012,5,28) => 'Pünkösd hétfő',
|
53
|
+
Date.civil(2012,8,20) => 'Az államalapítás ünnepe',
|
54
|
+
Date.civil(2012,10,23) => '1956-os forradalom és szabadságharc ünnepe',
|
55
|
+
Date.civil(2012,11,1) => 'Mindenszentek',
|
56
|
+
Date.civil(2012,12,25) => 'Karácsony',
|
57
|
+
Date.civil(2012,12,26) => 'Karácsony',}.each do |date, name|
|
58
|
+
assert_equal name, (Holidays.on(date, :hu, :informal)[0] || {})[:name]
|
59
|
+
end
|
60
|
+
|
61
|
+
assert !Date.civil(2012,3,14).holiday?(:hu), '2012-03-14 is not a holiday in Hungary'
|
data/data/index.yaml
CHANGED
@@ -13,6 +13,7 @@ defs:
|
|
13
13
|
FI: ['fi.yaml']
|
14
14
|
FR: ['fr.yaml']
|
15
15
|
GB: ['gb.yaml']
|
16
|
+
HU: ['hu.yaml']
|
16
17
|
IE: ['ie.yaml']
|
17
18
|
IS: ['is.yaml']
|
18
19
|
IT: ['it.yaml']
|
@@ -31,5 +32,5 @@ defs:
|
|
31
32
|
ZA: ['za.yaml']
|
32
33
|
North_America: ['ca.yaml', 'mx.yaml', 'us.yaml', 'north_america_informal.yaml']
|
33
34
|
Scandinavia: ['dk.yaml', 'is.yaml', 'no.yaml', 'se.yaml', 'fi.yaml']
|
34
|
-
Europe: ['at.yaml', 'cz.yaml', 'dk.yaml', 'de.yaml', 'el.yaml', 'es.yaml', 'fr.yaml', 'gb.yaml', 'ie.yaml', 'is.yaml', 'it.yaml', 'li.yaml', 'nl.yaml', 'no.yaml', 'pl.yaml', 'pt.yaml']
|
35
|
+
Europe: ['at.yaml', 'cz.yaml', 'dk.yaml', 'de.yaml', 'el.yaml', 'es.yaml', 'fr.yaml', 'gb.yaml', 'hu.yaml', 'ie.yaml', 'is.yaml', 'it.yaml', 'li.yaml', 'nl.yaml', 'no.yaml', 'pl.yaml', 'pt.yaml']
|
35
36
|
JP: ['jp.yaml']
|
data/data/pt.yaml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# Portugese holiday definitions for the Ruby Holiday gem.
|
2
2
|
#
|
3
|
-
# Updated:
|
3
|
+
# Updated: 2012-02-07.
|
4
4
|
# Sources:
|
5
|
+
# - http://thomasallen.home.sapo.pt/travel/hols.htm
|
5
6
|
# - http://en.wikipedia.org/wiki/Holidays_in_Portugal
|
6
7
|
# - http://www.kidlink.org/KIDPROJ/MCC/mcc0006.html
|
7
8
|
# - http://www.worldtravelguide.net/country/227/public_holidays/Europe/Portugal.html
|
@@ -20,9 +21,6 @@ months:
|
|
20
21
|
- name: Páscoa
|
21
22
|
regions: [pt]
|
22
23
|
function: easter(year)
|
23
|
-
- name: Corpo de Deus
|
24
|
-
regions: [pt]
|
25
|
-
function: easter(year)+60
|
26
24
|
1:
|
27
25
|
- name: Ano Novo
|
28
26
|
regions: [pt]
|
@@ -39,22 +37,11 @@ months:
|
|
39
37
|
- name: Dia de Portugal
|
40
38
|
regions: [pt]
|
41
39
|
mday: 10
|
42
|
-
8:
|
43
|
-
- name: Assunção de Nossa Senhora
|
44
|
-
regions: [pt]
|
45
|
-
mday: 15
|
46
|
-
10:
|
47
|
-
- name: Implantação da República
|
48
|
-
regions: [pt]
|
49
|
-
mday: 5
|
50
40
|
11:
|
51
41
|
- name: Todos os Santos
|
52
42
|
regions: [pt]
|
53
43
|
mday: 1
|
54
44
|
12:
|
55
|
-
- name: Restauração da Independência
|
56
|
-
regions: [pt]
|
57
|
-
mday: 1
|
58
45
|
- name: Imaculada Conceição
|
59
46
|
regions: [pt]
|
60
47
|
mday: 8
|
@@ -71,14 +58,8 @@ tests: |
|
|
71
58
|
Date.civil(2008,3,23) => 'Páscoa',
|
72
59
|
Date.civil(2008,4,25) => 'Dia da Liberdade',
|
73
60
|
Date.civil(2008,5,1) => 'Dia do Trabalhador',
|
74
|
-
Date.civil(2005,5,26) => 'Corpo de Deus',
|
75
|
-
Date.civil(2007,6,7) => 'Corpo de Deus',
|
76
|
-
Date.civil(2008,5,22) => 'Corpo de Deus',
|
77
61
|
Date.civil(2008,6,10) => 'Dia de Portugal',
|
78
|
-
Date.civil(2008,8,15) => 'Assunção de Nossa Senhora',
|
79
|
-
Date.civil(2008,10,5) => 'Implantação da República',
|
80
62
|
Date.civil(2008,11,1) => 'Todos os Santos',
|
81
|
-
Date.civil(2008,12,1) => 'Restauração da Independência',
|
82
63
|
Date.civil(2008,12,8) => 'Imaculada Conceição',
|
83
64
|
Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
|
84
65
|
assert_equal name, (Holidays.on(date, :pt, :informal)[0] || {})[:name]
|
data/holidays.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "holidays"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alex Dunae"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2012-03-13"
|
13
13
|
s.description = "A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!"
|
14
14
|
s.email = "code@dunae.ca"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
"data/fi.yaml",
|
38
38
|
"data/fr.yaml",
|
39
39
|
"data/gb.yaml",
|
40
|
+
"data/hu.yaml",
|
40
41
|
"data/ie.yaml",
|
41
42
|
"data/index.yaml",
|
42
43
|
"data/is.yaml",
|
@@ -138,50 +139,20 @@ Gem::Specification.new do |s|
|
|
138
139
|
s.specification_version = 3
|
139
140
|
|
140
141
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
141
|
-
s.add_runtime_dependency(%q<holidays>, [">= 0"])
|
142
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
143
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
144
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
145
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
146
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
147
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
148
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
149
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
150
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
151
|
-
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
152
142
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
153
143
|
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
144
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
154
145
|
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
155
146
|
else
|
156
|
-
s.add_dependency(%q<holidays>, [">= 0"])
|
157
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
158
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
159
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
160
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
161
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
162
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
163
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
164
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
165
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
166
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
167
147
|
s.add_dependency(%q<rake>, [">= 0"])
|
168
148
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
149
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
169
150
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
170
151
|
end
|
171
152
|
else
|
172
|
-
s.add_dependency(%q<holidays>, [">= 0"])
|
173
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
174
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
175
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
176
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
177
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
178
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
179
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
180
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
181
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
182
|
-
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
183
153
|
s.add_dependency(%q<rake>, [">= 0"])
|
184
154
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
155
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
185
156
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
186
157
|
end
|
187
158
|
end
|
data/lib/holidays.rb
CHANGED
@@ -46,7 +46,7 @@ module Holidays
|
|
46
46
|
# Exception thrown when an unknown region is requested.
|
47
47
|
class UnknownRegionError < ArgumentError; end
|
48
48
|
|
49
|
-
VERSION = '1.0.
|
49
|
+
VERSION = '1.0.5'
|
50
50
|
|
51
51
|
@@regions = []
|
52
52
|
@@holidays_by_month = {}
|
@@ -70,6 +70,23 @@ module Holidays
|
|
70
70
|
self.between(date, date, options)
|
71
71
|
end
|
72
72
|
|
73
|
+
# Does the given work-week have any holidays?
|
74
|
+
#
|
75
|
+
# [<tt>date</tt>] A Date object.
|
76
|
+
# [<tt>:options</tt>] One or more region symbols, and/or <tt>:informal</tt>. Automatically includes <tt>:observed</tt>. If you don't want this, pass <tt>:no_observed</tt>
|
77
|
+
#
|
78
|
+
# The given Date can be any day of the week.
|
79
|
+
# Returns true if any holidays fall on Monday - Friday of the given week.
|
80
|
+
def self.full_week?(date, *options)
|
81
|
+
days_to_monday = date.wday - 1
|
82
|
+
days_to_friday = 5 - date.wday
|
83
|
+
start_date = date - days_to_monday
|
84
|
+
end_date = date + days_to_friday
|
85
|
+
options += [:observed] unless options.include?(:no_observed)
|
86
|
+
options.delete(:no_observed)
|
87
|
+
self.between(start_date, end_date, options).empty?
|
88
|
+
end
|
89
|
+
|
73
90
|
# Get all holidays occuring between two dates, inclusively.
|
74
91
|
#
|
75
92
|
# Returns an array of hashes or nil.
|
@@ -88,8 +105,8 @@ module Holidays
|
|
88
105
|
# {:name => 'Independence Day'', :regions => [:us], ...}]
|
89
106
|
def self.between(start_date, end_date, *options)
|
90
107
|
# remove the timezone
|
91
|
-
start_date = start_date.new_offset(0) if start_date.respond_to?(:new_offset)
|
92
|
-
end_date = end_date.new_offset(0) if end_date.respond_to?(:new_offset)
|
108
|
+
start_date = start_date.new_offset(0) + start_date.offset if start_date.respond_to?(:new_offset)
|
109
|
+
end_date = end_date.new_offset(0) + end_date.offset if end_date.respond_to?(:new_offset)
|
93
110
|
|
94
111
|
# get simple dates
|
95
112
|
if start_date.respond_to?(:to_date)
|
data/lib/holidays/europe.rb
CHANGED
@@ -90,8 +90,7 @@ module Holidays
|
|
90
90
|
{:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Uroczystość Najświętszego Ciała i Krwi Pańskiej (Boże Ciało)", :regions => [:pl]},
|
91
91
|
{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:pt]},
|
92
92
|
{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:pt]},
|
93
|
-
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]},
|
94
|
-
{:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpo de Deus", :regions => [:pt]}],
|
93
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]}],
|
95
94
|
1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:at, :de, :li]},
|
96
95
|
{:mday => 6, :name => "Heilige Drei Könige", :regions => [:at]},
|
97
96
|
{:mday => 1, :name => "Den obnovy samostatného českého státu", :regions => [:cz]},
|
@@ -155,8 +154,7 @@ module Holidays
|
|
155
154
|
{:mday => 15, :name => "Assunzione", :regions => [:it]},
|
156
155
|
{:mday => 15, :name => "Staatsfeiertag", :regions => [:li]},
|
157
156
|
{:mday => 15, :name => "Wniebowzięcie Najświętszej Maryi Panny", :regions => [:pl]},
|
158
|
-
{:mday => 15, :name => "Święto Wojska Polskiego", :regions => [:pl]},
|
159
|
-
{:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]}],
|
157
|
+
{:mday => 15, :name => "Święto Wojska Polskiego", :regions => [:pl]}],
|
160
158
|
10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]},
|
161
159
|
{:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]},
|
162
160
|
{:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
|
@@ -165,8 +163,7 @@ module Holidays
|
|
165
163
|
{:mday => 9, :name => "Día de Valencia", :regions => [:es_vc, :es_v]},
|
166
164
|
{:mday => 12, :name => "Día de la Hispanidad", :regions => [:es]},
|
167
165
|
{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]},
|
168
|
-
{:mday => 14, :type => :informal, :name => "Dzień Nauczyciela (Dzień Edukacji Narodowej)", :regions => [:pl]},
|
169
|
-
{:mday => 5, :name => "Implantação da República", :regions => [:pt]}],
|
166
|
+
{:mday => 14, :type => :informal, :name => "Dzień Nauczyciela (Dzień Edukacji Narodowej)", :regions => [:pl]}],
|
170
167
|
11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at, :de_bw, :de_by, :de_nw, :de_rp, :de_sl, :li]},
|
171
168
|
{:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]},
|
172
169
|
{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
|
@@ -226,7 +223,6 @@ module Holidays
|
|
226
223
|
{:mday => 25, :name => "pierwszy dzień Bożego Narodzenia", :regions => [:pl]},
|
227
224
|
{:mday => 26, :name => "drugi dzień Bożego Narodzenia", :regions => [:pl]},
|
228
225
|
{:mday => 31, :type => :informal, :name => "Sylwester", :regions => [:pl]},
|
229
|
-
{:mday => 1, :name => "Restauração da Independência", :regions => [:pt]},
|
230
226
|
{:mday => 8, :name => "Imaculada Conceição", :regions => [:pt]},
|
231
227
|
{:mday => 25, :name => "Natal", :regions => [:pt]}],
|
232
228
|
7 => [{:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
|
data/lib/holidays/pt.rb
CHANGED
@@ -20,17 +20,13 @@ module Holidays
|
|
20
20
|
{
|
21
21
|
0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:pt]},
|
22
22
|
{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:pt]},
|
23
|
-
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]},
|
24
|
-
{:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpo de Deus", :regions => [:pt]}],
|
23
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]}],
|
25
24
|
1 => [{:mday => 1, :name => "Ano Novo", :regions => [:pt]}],
|
26
25
|
4 => [{:mday => 25, :name => "Dia da Liberdade", :regions => [:pt]}],
|
27
26
|
5 => [{:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]}],
|
28
27
|
6 => [{:mday => 10, :name => "Dia de Portugal", :regions => [:pt]}],
|
29
|
-
8 => [{:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]}],
|
30
|
-
10 => [{:mday => 5, :name => "Implantação da República", :regions => [:pt]}],
|
31
28
|
11 => [{:mday => 1, :name => "Todos os Santos", :regions => [:pt]}],
|
32
|
-
12 => [{:mday =>
|
33
|
-
{:mday => 8, :name => "Imaculada Conceição", :regions => [:pt]},
|
29
|
+
12 => [{:mday => 8, :name => "Imaculada Conceição", :regions => [:pt]},
|
34
30
|
{:mday => 25, :name => "Natal", :regions => [:pt]}]
|
35
31
|
}
|
36
32
|
end
|
@@ -456,14 +456,8 @@ end
|
|
456
456
|
Date.civil(2008,3,23) => 'Páscoa',
|
457
457
|
Date.civil(2008,4,25) => 'Dia da Liberdade',
|
458
458
|
Date.civil(2008,5,1) => 'Dia do Trabalhador',
|
459
|
-
Date.civil(2005,5,26) => 'Corpo de Deus',
|
460
|
-
Date.civil(2007,6,7) => 'Corpo de Deus',
|
461
|
-
Date.civil(2008,5,22) => 'Corpo de Deus',
|
462
459
|
Date.civil(2008,6,10) => 'Dia de Portugal',
|
463
|
-
Date.civil(2008,8,15) => 'Assunção de Nossa Senhora',
|
464
|
-
Date.civil(2008,10,5) => 'Implantação da República',
|
465
460
|
Date.civil(2008,11,1) => 'Todos os Santos',
|
466
|
-
Date.civil(2008,12,1) => 'Restauração da Independência',
|
467
461
|
Date.civil(2008,12,8) => 'Imaculada Conceição',
|
468
462
|
Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
|
469
463
|
assert_equal name, (Holidays.on(date, :pt, :informal)[0] || {})[:name]
|
data/test/defs/test_defs_pt.rb
CHANGED
@@ -16,14 +16,8 @@ class PtDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
16
16
|
Date.civil(2008,3,23) => 'Páscoa',
|
17
17
|
Date.civil(2008,4,25) => 'Dia da Liberdade',
|
18
18
|
Date.civil(2008,5,1) => 'Dia do Trabalhador',
|
19
|
-
Date.civil(2005,5,26) => 'Corpo de Deus',
|
20
|
-
Date.civil(2007,6,7) => 'Corpo de Deus',
|
21
|
-
Date.civil(2008,5,22) => 'Corpo de Deus',
|
22
19
|
Date.civil(2008,6,10) => 'Dia de Portugal',
|
23
|
-
Date.civil(2008,8,15) => 'Assunção de Nossa Senhora',
|
24
|
-
Date.civil(2008,10,5) => 'Implantação da República',
|
25
20
|
Date.civil(2008,11,1) => 'Todos os Santos',
|
26
|
-
Date.civil(2008,12,1) => 'Restauração da Independência',
|
27
21
|
Date.civil(2008,12,8) => 'Imaculada Conceição',
|
28
22
|
Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
|
29
23
|
assert_equal name, (Holidays.on(date, :pt, :informal)[0] || {})[:name]
|
data/test/test_date.rb
CHANGED
@@ -112,12 +112,4 @@ class DateTests < Test::Unit::TestCase
|
|
112
112
|
assert DateTime.now.holiday?('test')
|
113
113
|
end
|
114
114
|
|
115
|
-
# ensure that dates are compared in the same timezone
|
116
|
-
def test_datetime_offset_holiday?
|
117
|
-
dt = DateTime.now.new_offset(Rational(23,24))
|
118
|
-
assert dt.holiday?('test'), dt.inspect
|
119
|
-
|
120
|
-
dt = DateTime.now.new_offset(Rational(-23,24))
|
121
|
-
assert dt.holiday?('test'), dt.inspect
|
122
|
-
end
|
123
115
|
end
|
data/test/test_holidays.rb
CHANGED
@@ -30,6 +30,30 @@ class HolidaysTests < Test::Unit::TestCase
|
|
30
30
|
assert_equal 0, holidays.length
|
31
31
|
end
|
32
32
|
|
33
|
+
def test_full_week
|
34
|
+
## Full weeks:
|
35
|
+
# Try with a Monday
|
36
|
+
assert Holidays.full_week?(Date.civil(2012,1,23), :us)
|
37
|
+
# Try with a Wednesday
|
38
|
+
assert Holidays.full_week?(Date.civil(2012,1,25), :us)
|
39
|
+
# Try Sunday on a week going into a new month
|
40
|
+
assert Holidays.full_week?(Date.civil(2012,1,29), :us)
|
41
|
+
# Try Wednesday on a week going into a new month
|
42
|
+
assert Holidays.full_week?(Date.civil(2012,2,1), :us)
|
43
|
+
|
44
|
+
## Weeks with holidays:
|
45
|
+
# New Year's 2012 (on Sunday, observed Monday). Test from a Wednesday.
|
46
|
+
assert_equal(false, Holidays.full_week?(Date.civil(2012,1,4), :us))
|
47
|
+
# Ignore observed holidays with :no_observed
|
48
|
+
assert Holidays.full_week?(Date.civil(2012,1,4), :us, :no_observed)
|
49
|
+
# Labor Day 2012 should be Sept 3
|
50
|
+
assert_equal(false, Holidays.full_week?(Date.civil(2012,9,5), :us))
|
51
|
+
# Should be 10 non-full weeks in the year (in the US)
|
52
|
+
weeks_in_2012 = Date.commercial(2013, -1).cweek
|
53
|
+
holidays_in_2012 = weeks_in_2012.times.count { |week| Holidays.full_week?(Date.commercial(2012,week+1), :us) == false }
|
54
|
+
assert_equal 10, holidays_in_2012
|
55
|
+
end
|
56
|
+
|
33
57
|
def test_requires_valid_regions
|
34
58
|
assert_raises Holidays::UnknownRegionError do
|
35
59
|
Holidays.on(Date.civil(2008,1,1), :xx)
|
metadata
CHANGED
@@ -1,179 +1,92 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: holidays
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 5
|
10
|
+
version: 1.0.5
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Alex Dunae
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
requirement: &2151749080 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: *2151749080
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: rdoc
|
27
|
-
requirement: &2151745120 !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - ! '>='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 2.4.2
|
33
|
-
type: :development
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *2151745120
|
36
|
-
- !ruby/object:Gem::Dependency
|
17
|
+
|
18
|
+
date: 2012-03-13 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
37
21
|
name: rake
|
38
|
-
requirement: &2151744040 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0'
|
44
|
-
type: :development
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *2151744040
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rdoc
|
49
|
-
requirement: &2151742360 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 2.4.2
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: *2151742360
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: rdoc
|
60
|
-
requirement: &2151737980 !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
|
-
requirements:
|
63
|
-
- - ! '>='
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 2.4.2
|
66
|
-
type: :development
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: *2151737980
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rake
|
71
|
-
requirement: &2152410340 !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
|
-
requirements:
|
74
|
-
- - ! '>='
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
22
|
prerelease: false
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rdoc
|
82
|
-
requirement: &2152631220 !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
83
24
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
88
32
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
92
35
|
name: rdoc
|
93
|
-
requirement: &2152639560 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
|
-
requirements:
|
96
|
-
- - ! '>='
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: 2.4.2
|
99
|
-
type: :development
|
100
36
|
prerelease: false
|
101
|
-
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: rake
|
104
|
-
requirement: &2152677380 !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *2152677380
|
113
|
-
- !ruby/object:Gem::Dependency
|
114
|
-
name: rdoc
|
115
|
-
requirement: &2152683740 !ruby/object:Gem::Requirement
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
116
38
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 27
|
43
|
+
segments:
|
44
|
+
- 2
|
45
|
+
- 4
|
46
|
+
- 2
|
120
47
|
version: 2.4.2
|
121
48
|
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: jeweler
|
122
52
|
prerelease: false
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Dependency
|
125
|
-
name: rdoc
|
126
|
-
requirement: &2152829180 !ruby/object:Gem::Requirement
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
127
54
|
none: false
|
128
|
-
requirements:
|
129
|
-
- -
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: rake
|
137
|
-
requirement: &2153257720 !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- - ! '>='
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: '0'
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
143
62
|
type: :development
|
144
|
-
|
145
|
-
|
146
|
-
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
147
65
|
name: rdoc
|
148
|
-
requirement: &2153373820 !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
|
-
requirements:
|
151
|
-
- - ! '>='
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: 2.4.2
|
154
|
-
type: :development
|
155
66
|
prerelease: false
|
156
|
-
|
157
|
-
- !ruby/object:Gem::Dependency
|
158
|
-
name: rdoc
|
159
|
-
requirement: &2153373340 !ruby/object:Gem::Requirement
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
160
68
|
none: false
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 27
|
73
|
+
segments:
|
74
|
+
- 2
|
75
|
+
- 4
|
76
|
+
- 2
|
164
77
|
version: 2.4.2
|
165
78
|
type: :development
|
166
|
-
|
167
|
-
|
168
|
-
description: A collection of Ruby methods to deal with statutory and other holidays. You
|
169
|
-
deserve a holiday!
|
79
|
+
version_requirements: *id004
|
80
|
+
description: A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!
|
170
81
|
email: code@dunae.ca
|
171
82
|
executables: []
|
83
|
+
|
172
84
|
extensions: []
|
173
|
-
|
85
|
+
|
86
|
+
extra_rdoc_files:
|
174
87
|
- LICENSE
|
175
88
|
- README.rdoc
|
176
|
-
files:
|
89
|
+
files:
|
177
90
|
- .travis.yml
|
178
91
|
- CHANGELOG
|
179
92
|
- Gemfile
|
@@ -194,6 +107,7 @@ files:
|
|
194
107
|
- data/fi.yaml
|
195
108
|
- data/fr.yaml
|
196
109
|
- data/gb.yaml
|
110
|
+
- data/hu.yaml
|
197
111
|
- data/ie.yaml
|
198
112
|
- data/index.yaml
|
199
113
|
- data/is.yaml
|
@@ -287,27 +201,36 @@ files:
|
|
287
201
|
- test/test_multiple_regions.rb
|
288
202
|
homepage: https://github.com/alexdunae/holidays
|
289
203
|
licenses: []
|
204
|
+
|
290
205
|
post_install_message:
|
291
206
|
rdoc_options: []
|
292
|
-
|
207
|
+
|
208
|
+
require_paths:
|
293
209
|
- lib
|
294
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
210
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
295
211
|
none: false
|
296
|
-
requirements:
|
297
|
-
- -
|
298
|
-
- !ruby/object:Gem::Version
|
299
|
-
|
300
|
-
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
hash: 3
|
216
|
+
segments:
|
217
|
+
- 0
|
218
|
+
version: "0"
|
219
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
301
220
|
none: false
|
302
|
-
requirements:
|
303
|
-
- -
|
304
|
-
- !ruby/object:Gem::Version
|
305
|
-
|
221
|
+
requirements:
|
222
|
+
- - ">="
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
hash: 3
|
225
|
+
segments:
|
226
|
+
- 0
|
227
|
+
version: "0"
|
306
228
|
requirements: []
|
229
|
+
|
307
230
|
rubyforge_project:
|
308
231
|
rubygems_version: 1.8.10
|
309
232
|
signing_key:
|
310
233
|
specification_version: 3
|
311
|
-
summary: A collection of Ruby methods to deal with statutory and other holidays. You
|
312
|
-
deserve a holiday!
|
234
|
+
summary: A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!
|
313
235
|
test_files: []
|
236
|
+
|