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 CHANGED
@@ -1,8 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gemspec
4
-
5
3
  group :test, :development do
6
4
  gem 'rake'
7
5
  gem 'rdoc', '>= 2.4.2'
6
+ gem 'jeweler'
8
7
  end
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  ==== Ruby Holidays Gem License
2
2
 
3
- Copyright (c) 2007-11 Alex Dunae
3
+ Copyright (c) 2007-12 Alex Dunae
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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-11.
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 Könige
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: Mari√§ Himmelfahrt
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: Mari√§ Empf√§ngnis
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: 2008-11-28.
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.4"
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 = "2011-10-19"
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.4'
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)
@@ -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 => 1, :name => "Restauração da Independência", :regions => [:pt]},
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]
@@ -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
@@ -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
- version: 1.0.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
- date: 2011-10-19 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: holidays
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
- version_requirements: *2152410340
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
- version: 2.4.2
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
88
32
  type: :development
89
- prerelease: false
90
- version_requirements: *2152631220
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
- version_requirements: *2152639560
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
- version_requirements: *2152683740
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
- version: 2.4.2
132
- type: :development
133
- prerelease: false
134
- version_requirements: *2152829180
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
- prerelease: false
145
- version_requirements: *2153257720
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
- version_requirements: *2153373820
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
- prerelease: false
167
- version_requirements: *2153373340
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
- extra_rdoc_files:
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
- require_paths:
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
- version: '0'
300
- required_rubygems_version: !ruby/object:Gem::Requirement
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
- version: '0'
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
+