holidays 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: daf9f996b85b5c11645266f2604847ceddf8d4a3
4
- data.tar.gz: 1c37b24104b546431ba477bf22ed8ac35a622c5f
3
+ metadata.gz: c74b677a9819268733c692afe11958c2cf1ccaed
4
+ data.tar.gz: faedba7eb3f149f92de77ddb7ec567cc708a2485
5
5
  SHA512:
6
- metadata.gz: 4d782ce1901f6e8efab46412277d807d310e88881f87a283ef9a5e94108a2dcbc9d13f25f1c30927024cc0c24263fee77514ce8d73113c6130c0290cd978593a
7
- data.tar.gz: 9e23cb50fdaa0889020463b8e104726922300f07d0536ca3d0ab39b1838756082fdfcc1e48552d6fba787424ef46383f6151e66b69da21a39eeec44ef1b4dbf2
6
+ metadata.gz: 7530fa6ee86e2c3fe1136eac771c0d307d89cdb4e870c7fc2f4de8d14af8a967055c1c75ee6299a3e0f6238f3c50ea832c6db715c854a1a09814e32bdd397276
7
+ data.tar.gz: 9a608809435239e4ae5a7b7d6f97e3ae085afdd40eac49808b9947287f404442af265bd529508b3c1dfeae3b5f90c209fe967d78615de28906a327dd4222ee26
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Ruby Holidays Gem CHANGELOG
2
2
 
3
+ ## 4.2.0
4
+
5
+ * BUGFIX Issue-194: correctly calculate `next_holidays` if next holiday is far in the future
6
+ * Give dutch holidays their proper names (https://github.com/Qqwy)
7
+
3
8
  ## 4.1.0
4
9
 
5
10
  * Issue-161: correctly report St Andrews Day as informal 2006 and earlier in `gb_sct`
data/definitions/nl.yaml CHANGED
@@ -11,10 +11,10 @@ months:
11
11
  function: easter(year)
12
12
  function_modifier: -2
13
13
  type: informal
14
- - name: Eerste Pasen
14
+ - name: Eerste Paasdag
15
15
  regions: [nl]
16
16
  function: easter(year)
17
- - name: Tweede Pasen
17
+ - name: Tweede Paasdag
18
18
  regions: [nl]
19
19
  function: easter(year)
20
20
  function_modifier: 1
@@ -22,16 +22,16 @@ months:
22
22
  regions: [nl]
23
23
  function: easter(year)
24
24
  function_modifier: 39
25
- - name: Eerste Pinksteren
25
+ - name: Eerste Pinksterdag
26
26
  regions: [nl]
27
27
  function: easter(year)
28
28
  function_modifier: 49
29
- - name: Tweede Pinksteren
29
+ - name: Tweede Pinksterdag
30
30
  regions: [nl]
31
31
  function: easter(year)
32
32
  function_modifier: 50
33
33
  1:
34
- - name: Nieuwjaar
34
+ - name: Nieuwjaarsdag
35
35
  regions: [nl]
36
36
  mday: 1
37
37
  4:
@@ -51,23 +51,23 @@ months:
51
51
  regions: [nl]
52
52
  mday: 5
53
53
  type: informal
54
- - name: Eerste Kerstmis
54
+ - name: Eerste Kerstdag
55
55
  regions: [nl]
56
56
  mday: 25
57
- - name: Tweede Kerstmis
57
+ - name: Tweede Kerstdag
58
58
  regions: [nl]
59
59
  mday: 26
60
60
  tests: |
61
- {Date.civil(2008,1,1) => 'Nieuwjaar',
61
+ {Date.civil(2008,1,1) => 'Nieuwjaarsdag',
62
62
  Date.civil(2008,3,21) => 'Goede Vrijdag',
63
- Date.civil(2008,3,23) => 'Eerste Pasen',
64
- Date.civil(2008,3,24) => 'Tweede Pasen',
63
+ Date.civil(2008,3,23) => 'Eerste Paasdag',
64
+ Date.civil(2008,3,24) => 'Tweede Paasdag',
65
65
  Date.civil(2008,4,27) => 'Koningsdag',
66
66
  Date.civil(2008,5,1) => 'Hemelvaartsdag', # Ascension, Easter+39
67
67
  Date.civil(2008,5,5) => 'Bevrijdingsdag',
68
- Date.civil(2008,5,11) => 'Eerste Pinksteren', # Pentecost, Easter+49
69
- Date.civil(2008,5,12) => 'Tweede Pinksteren', # Pentecost, Easter+50
70
- Date.civil(2008,12,25) => 'Eerste Kerstmis',
71
- Date.civil(2008,12,26) => 'Tweede Kerstmis'}.each do |date, name|
68
+ Date.civil(2008,5,11) => 'Eerste Pinksterdag', # Pentecost, Easter+49
69
+ Date.civil(2008,5,12) => 'Tweede Pinksterdag', # Pentecost, Easter+50
70
+ Date.civil(2008,12,25) => 'Eerste Kerstdag',
71
+ Date.civil(2008,12,26) => 'Tweede Kerstdag'}.each do |date, name|
72
72
  assert_equal name, (Holidays.on(date, :nl, :informal)[0] || {})[:name]
73
73
  end
@@ -107,11 +107,11 @@ module Holidays
107
107
  {:function => "easter(year)", :function_arguments => [:year], :name => "Šv. Velykos", :regions => [:lt]},
108
108
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Antroji Velykų diena", :regions => [:lt]},
109
109
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
110
- {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Pasen", :regions => [:nl]},
111
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Pasen", :regions => [:nl]},
110
+ {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Paasdag", :regions => [:nl]},
111
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Paasdag", :regions => [:nl]},
112
112
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Hemelvaartsdag", :regions => [:nl]},
113
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Eerste Pinksteren", :regions => [:nl]},
114
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Tweede Pinksteren", :regions => [:nl]},
113
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Eerste Pinksterdag", :regions => [:nl]},
114
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Tweede Pinksterdag", :regions => [:nl]},
115
115
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -49, :type => :informal, :name => "Fastelavn", :regions => [:no]},
116
116
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -7, :name => "Palmesøndag", :regions => [:no]},
117
117
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Skjærtorsdag", :regions => [:no]},
@@ -181,7 +181,7 @@ module Holidays
181
181
  {:mday => 1, :name => "Neujahrstag", :regions => [:li]},
182
182
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:li]},
183
183
  {:mday => 1, :name => "Naujieji metai", :regions => [:lt]},
184
- {:mday => 1, :name => "Nieuwjaar", :regions => [:nl]},
184
+ {:mday => 1, :name => "Nieuwjaarsdag", :regions => [:nl]},
185
185
  {:mday => 1, :name => "Nyttårsdag", :regions => [:no]},
186
186
  {:mday => 1, :name => "Nowy Rok", :regions => [:pl]},
187
187
  {:function => "pl_trzech_kroli(year)", :function_arguments => [:year], :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
@@ -365,8 +365,8 @@ module Holidays
365
365
  {:mday => 25, :name => "Šv. Kalėdos", :regions => [:lt]},
366
366
  {:mday => 26, :name => "Antroji Kalėdų diena", :regions => [:lt]},
367
367
  {:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
368
- {:mday => 25, :name => "Eerste Kerstmis", :regions => [:nl]},
369
- {:mday => 26, :name => "Tweede Kerstmis", :regions => [:nl]},
368
+ {:mday => 25, :name => "Eerste Kerstdag", :regions => [:nl]},
369
+ {:mday => 26, :name => "Tweede Kerstdag", :regions => [:nl]},
370
370
  {:mday => 24, :type => :informal, :name => "Julaften", :regions => [:no]},
371
371
  {:mday => 25, :name => "1. juledag", :regions => [:no]},
372
372
  {:mday => 26, :name => "2. juledag", :regions => [:no]},
@@ -19,18 +19,18 @@ module Holidays
19
19
  def self.holidays_by_month
20
20
  {
21
21
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
22
- {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Pasen", :regions => [:nl]},
23
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Pasen", :regions => [:nl]},
22
+ {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Paasdag", :regions => [:nl]},
23
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Paasdag", :regions => [:nl]},
24
24
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Hemelvaartsdag", :regions => [:nl]},
25
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Eerste Pinksteren", :regions => [:nl]},
26
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Tweede Pinksteren", :regions => [:nl]}],
27
- 1 => [{:mday => 1, :name => "Nieuwjaar", :regions => [:nl]}],
25
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Eerste Pinksterdag", :regions => [:nl]},
26
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Tweede Pinksterdag", :regions => [:nl]}],
27
+ 1 => [{:mday => 1, :name => "Nieuwjaarsdag", :regions => [:nl]}],
28
28
  4 => [{:mday => 27, :name => "Koningsdag", :regions => [:nl]}],
29
29
  5 => [{:mday => 4, :type => :informal, :name => "Dodenherdenking", :regions => [:nl]},
30
30
  {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]}],
31
31
  12 => [{:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
32
- {:mday => 25, :name => "Eerste Kerstmis", :regions => [:nl]},
33
- {:mday => 26, :name => "Tweede Kerstmis", :regions => [:nl]}]
32
+ {:mday => 25, :name => "Eerste Kerstdag", :regions => [:nl]},
33
+ {:mday => 26, :name => "Tweede Kerstdag", :regions => [:nl]}]
34
34
  }
35
35
  end
36
36
 
data/lib/holidays.rb CHANGED
@@ -151,7 +151,11 @@ module Holidays
151
151
 
152
152
  from_date = get_date(from_date)
153
153
  regions, observed, informal = OptionFactory.parse_options.call(options)
154
- date_driver_hash = UseCaseFactory.dates_driver_builder.build(from_date)
154
+
155
+ # This could be smarter but I don't have any evidence that just checking for
156
+ # the next 12 months will cause us issues. If it does we can implement something
157
+ # smarter here to check in smaller increments.
158
+ date_driver_hash = UseCaseFactory.dates_driver_builder.call(from_date, from_date >> 12)
155
159
 
156
160
  UseCaseFactory.next_holiday.call(holidays_count, from_date, date_driver_hash, regions, observed, informal)
157
161
  end
@@ -15,6 +15,8 @@ module Holidays
15
15
  clean(dates_driver)
16
16
  end
17
17
 
18
+ #FIXME Why is the date_driver set to optional as the first param? That's
19
+ # just plain wrong...
18
20
  def build(dates_driver = {}, date)
19
21
  raise ArgumentError unless dates_driver
20
22
  raise ArgumentError unless date
@@ -1,3 +1,3 @@
1
1
  module Holidays
2
- VERSION = '4.1.0'
2
+ VERSION = '4.2.0'
3
3
  end
@@ -514,17 +514,17 @@ end
514
514
  end
515
515
 
516
516
 
517
- {Date.civil(2008,1,1) => 'Nieuwjaar',
517
+ {Date.civil(2008,1,1) => 'Nieuwjaarsdag',
518
518
  Date.civil(2008,3,21) => 'Goede Vrijdag',
519
- Date.civil(2008,3,23) => 'Eerste Pasen',
520
- Date.civil(2008,3,24) => 'Tweede Pasen',
519
+ Date.civil(2008,3,23) => 'Eerste Paasdag',
520
+ Date.civil(2008,3,24) => 'Tweede Paasdag',
521
521
  Date.civil(2008,4,27) => 'Koningsdag',
522
522
  Date.civil(2008,5,1) => 'Hemelvaartsdag', # Ascension, Easter+39
523
523
  Date.civil(2008,5,5) => 'Bevrijdingsdag',
524
- Date.civil(2008,5,11) => 'Eerste Pinksteren', # Pentecost, Easter+49
525
- Date.civil(2008,5,12) => 'Tweede Pinksteren', # Pentecost, Easter+50
526
- Date.civil(2008,12,25) => 'Eerste Kerstmis',
527
- Date.civil(2008,12,26) => 'Tweede Kerstmis'}.each do |date, name|
524
+ Date.civil(2008,5,11) => 'Eerste Pinksterdag', # Pentecost, Easter+49
525
+ Date.civil(2008,5,12) => 'Tweede Pinksterdag', # Pentecost, Easter+50
526
+ Date.civil(2008,12,25) => 'Eerste Kerstdag',
527
+ Date.civil(2008,12,26) => 'Tweede Kerstdag'}.each do |date, name|
528
528
  assert_equal name, (Holidays.on(date, :nl, :informal)[0] || {})[:name]
529
529
  end
530
530
 
@@ -7,17 +7,17 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class NlDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_nl
10
- {Date.civil(2008,1,1) => 'Nieuwjaar',
10
+ {Date.civil(2008,1,1) => 'Nieuwjaarsdag',
11
11
  Date.civil(2008,3,21) => 'Goede Vrijdag',
12
- Date.civil(2008,3,23) => 'Eerste Pasen',
13
- Date.civil(2008,3,24) => 'Tweede Pasen',
12
+ Date.civil(2008,3,23) => 'Eerste Paasdag',
13
+ Date.civil(2008,3,24) => 'Tweede Paasdag',
14
14
  Date.civil(2008,4,27) => 'Koningsdag',
15
15
  Date.civil(2008,5,1) => 'Hemelvaartsdag', # Ascension, Easter+39
16
16
  Date.civil(2008,5,5) => 'Bevrijdingsdag',
17
- Date.civil(2008,5,11) => 'Eerste Pinksteren', # Pentecost, Easter+49
18
- Date.civil(2008,5,12) => 'Tweede Pinksteren', # Pentecost, Easter+50
19
- Date.civil(2008,12,25) => 'Eerste Kerstmis',
20
- Date.civil(2008,12,26) => 'Tweede Kerstmis'}.each do |date, name|
17
+ Date.civil(2008,5,11) => 'Eerste Pinksterdag', # Pentecost, Easter+49
18
+ Date.civil(2008,5,12) => 'Tweede Pinksterdag', # Pentecost, Easter+50
19
+ Date.civil(2008,12,25) => 'Eerste Kerstdag',
20
+ Date.civil(2008,12,26) => 'Tweede Kerstdag'}.each do |date, name|
21
21
  assert_equal name, (Holidays.on(date, :nl, :informal)[0] || {})[:name]
22
22
  end
23
23
 
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require File.expand_path(File.dirname(__FILE__)) + '/test_helper'
2
3
 
3
4
  require "#{Holidays::DEFINITIONS_PATH}/ca"
@@ -6,6 +7,8 @@ require "#{Holidays::DEFINITIONS_PATH}/ca"
6
7
  # defs aren't duplicated.
7
8
  require "#{Holidays::DEFINITIONS_PATH}/north_america"
8
9
 
10
+ # These are effectively integration tests. We plan on making this explicit somehow
11
+ # in the future.
9
12
  class HolidaysTests < Test::Unit::TestCase
10
13
  def setup
11
14
  @date = Date.civil(2008,1,1)
@@ -118,6 +121,10 @@ class HolidaysTests < Test::Unit::TestCase
118
121
  holidays = Holidays.next_holidays(2, [:any], Date.civil(2008,5,1))
119
122
  assert_equal 2, holidays.length
120
123
 
124
+ # Should return 1 holiday in July
125
+ holidays = Holidays.next_holidays(1, [:jp], Date.civil(2016, 5, 22))
126
+ assert_equal ['2016-07-18','海の日'] , [holidays.first[:date].to_s, holidays.first[:name].to_s]
127
+
121
128
  # Must Region.If there is not region, raise ArgumentError.
122
129
  assert_raises ArgumentError do
123
130
  Holidays.next_holidays(2, '', Date.civil(2008,5,1))
@@ -149,7 +156,7 @@ class HolidaysTests < Test::Unit::TestCase
149
156
  def test_sub_regions_holiday_next
150
157
  # Should return Victoria Day.
151
158
  holidays = Holidays.next_holidays(2, [:ca], Date.civil(2008,5,1))
152
- assert_equal 1, holidays.length
159
+ assert_equal 2, holidays.length
153
160
  assert_equal ['2008-05-19','Victoria Day'] , [holidays.first[:date].to_s, holidays.first[:name].to_s]
154
161
 
155
162
  # Should return Victoria Da and National Patriotes Day.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: holidays
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Dunae
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-05-14 00:00:00.000000000 Z
12
+ date: 2016-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler