holidays 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|