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 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
+