ndr_support 5.6.0 → 5.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d599151cea4c34a89c568436565e71f11e34d489ed9b6e29aacc009dda5095a4
4
- data.tar.gz: 47bc41f2159defce848c6150b4c72032252d6b88088ae38ac354abcf71b9f6e6
3
+ metadata.gz: 78cc28964136a687eb52b6d70fb215b782f4a9dc3689f6781b62281aba3ce7ed
4
+ data.tar.gz: b0769e6a9224abedc32b3517f1d26bcc0b8482e587e911960429e94b3fec3a98
5
5
  SHA512:
6
- metadata.gz: a7d2e904ba474818b94832adc0d2d5eb0844c1dc4d34cb31f2e8f7c717bd183069c8b014227c809f069960d974245cfd511ea0674b07b55f29645e4a2a592b90
7
- data.tar.gz: '08f269ba7631cea9a4257a72bad295d8539c0ff6055ab96fcca6a3734d55b7a132213a39e3048cdd81ee437ce6e470b4f79967e84279da782f7eee8c461ef540'
6
+ metadata.gz: 57c36e4153aa9c9c7dc8500d78ddacd19b70ed6ca8a22268c978a2af47e08a054d2ef8451a570ec7d05670f28cab9c92c49d55a3c797442a5440d0b2fd2ed5ee
7
+ data.tar.gz: 99d6457af2cfa72b7351c524c0fb19b74846f53b7815b8aa9585b39b3d02ef9f6fb89be4ce4314c072c332d2efb3670ddfdb229a50333557b01626fb877d6416
@@ -1,6 +1,12 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 5.6.1 / 2020-01-02
5
+ ## Fixed
6
+ * Fix issue with 2020 public holiday
7
+ * Support 2021 public holidays
8
+ * Ensure dateranges up to 2030 are supported
9
+
4
10
  ## 5.6.0 / 2019-08-29
5
11
  ### Added
6
12
  * Add `Integer#working_days_since`. (#11)
@@ -9,7 +15,7 @@
9
15
  ### Fixed
10
16
  * Support Ruby 2.6, Rails 6.0. Minimum Ruby/Rails versions are now 2.5/5.2
11
17
  * Warn when WorkingDays lookup is getting stale
12
- * Improved date parsing in String#to_date
18
+ * Improved date parsing in `String#to_date`
13
19
 
14
20
  ## 5.5.0 / 2018-11-16
15
21
  ### Added
@@ -17,7 +17,7 @@ file safety:
17
17
  CHANGELOG.md:
18
18
  comments:
19
19
  reviewed_by: josh.pencheon
20
- safe_revision: 1f67d8d27b697d51069ea9d3df27ae44db86c694
20
+ safe_revision: 6d47e4cec0d8384a2bbbf36c544bb386f69f5273
21
21
  CODE_OF_CONDUCT.md:
22
22
  comments:
23
23
  reviewed_by: timgentry
@@ -61,15 +61,15 @@ file safety:
61
61
  lib/ndr_support/concerns/working_days.rb:
62
62
  comments:
63
63
  reviewed_by: josh.pencheon
64
- safe_revision: a5afad784e1e28a76e3907f5d742dc221ce8a235
64
+ safe_revision: fe6c3beff445e3c84ed0c89f08e1ab10bfb00587
65
65
  lib/ndr_support/date_and_time_extensions.rb:
66
66
  comments:
67
67
  reviewed_by: josh.pencheon
68
68
  safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
69
69
  lib/ndr_support/daterange.rb:
70
70
  comments:
71
- reviewed_by: brian.shand
72
- safe_revision: c7ed8bc16be8ec803dfaeb3473fbc538b54587ec
71
+ reviewed_by: josh.pencheon
72
+ safe_revision: 8f18bbaa2cd5dbbf6e40eae2e403e47b589d5e9b
73
73
  lib/ndr_support/hash.rb:
74
74
  comments:
75
75
  reviewed_by: pauleves
@@ -132,8 +132,8 @@ file safety:
132
132
  safe_revision: 60cc69774d5aff92252558feae9604544def7583
133
133
  lib/ndr_support/string/conversions.rb:
134
134
  comments:
135
- reviewed_by: brian.shand
136
- safe_revision: 1692170e1d07e3b6ba95e88d6c15510a7b3c2fe6
135
+ reviewed_by: josh.pencheon
136
+ safe_revision: 4a26fe1677b99f8da3a6928c36d6c4c8d6de0cb8
137
137
  lib/ndr_support/tasks.rb:
138
138
  comments:
139
139
  reviewed_by: timgentry
@@ -161,7 +161,7 @@ file safety:
161
161
  lib/ndr_support/version.rb:
162
162
  comments:
163
163
  reviewed_by: josh.pencheon
164
- safe_revision: 1f67d8d27b697d51069ea9d3df27ae44db86c694
164
+ safe_revision: 6d47e4cec0d8384a2bbbf36c544bb386f69f5273
165
165
  lib/ndr_support/working_days.rb:
166
166
  comments:
167
167
  reviewed_by: josh.pencheon
@@ -180,12 +180,12 @@ file safety:
180
180
  safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
181
181
  test/concerns/working_days_test.rb:
182
182
  comments:
183
- reviewed_by: timgentry
184
- safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
183
+ reviewed_by: josh.pencheon
184
+ safe_revision: fe6c3beff445e3c84ed0c89f08e1ab10bfb00587
185
185
  test/daterange_test.rb:
186
186
  comments:
187
- reviewed_by: brian.shand
188
- safe_revision: c7ed8bc16be8ec803dfaeb3473fbc538b54587ec
187
+ reviewed_by: josh.pencheon
188
+ safe_revision: 8f18bbaa2cd5dbbf6e40eae2e403e47b589d5e9b
189
189
  test/hash_test.rb:
190
190
  comments:
191
191
  reviewed_by: timgentry
@@ -244,8 +244,8 @@ file safety:
244
244
  safe_revision: 60cc69774d5aff92252558feae9604544def7583
245
245
  test/string/conversions_test.rb:
246
246
  comments:
247
- reviewed_by: brian.shand
248
- safe_revision: 1692170e1d07e3b6ba95e88d6c15510a7b3c2fe6
247
+ reviewed_by: josh.pencheon
248
+ safe_revision: 4a26fe1677b99f8da3a6928c36d6c4c8d6de0cb8
249
249
  test/test_helper.rb:
250
250
  comments:
251
251
  reviewed_by: josh.pencheon
@@ -83,11 +83,20 @@ module WorkingDays
83
83
  '2020-01-01', # Wednesday - New Year's Day
84
84
  '2020-04-10', # Friday - Good Friday
85
85
  '2020-04-13', # Monday - Easter Monday
86
- '2020-05-04', # Monday - Early May bank holiday
86
+ '2020-05-08', # Friday - Early May bank holiday (moved from Monday)
87
87
  '2020-05-25', # Monday - Spring bank holiday
88
88
  '2020-08-31', # Monday - Summer bank holiday
89
89
  '2020-12-25', # Friday - Christmas Day
90
- '2020-12-26', # Monday - Boxing Day
90
+ '2020-12-28', # Monday - Boxing Day (substitute day)
91
+ # 2021
92
+ '2021-01-01', # Friday - New Year’s Day
93
+ '2021-04-02', # Friday - Good Friday
94
+ '2021-04-05', # Monday - Easter Monday
95
+ '2021-05-03', # Monday - Early May bank holiday
96
+ '2021-05-31', # Monday - Spring bank holiday
97
+ '2021-08-30', # Monday - Summer bank holiday
98
+ '2021-12-27', # Monday - Christmas Day
99
+ '2021-12-28', # Tuesday - Boxing Day
91
100
  ].map { |str| Date.parse(str) }
92
101
 
93
102
  def self.check_lookup
@@ -6,7 +6,7 @@ require 'ndr_support/integer/julian_date_conversions'
6
6
  class Daterange
7
7
  attr_reader :date1, :date2, :source
8
8
 
9
- OKYEARS = 1880..2020
9
+ OKYEARS = 1880..2030
10
10
 
11
11
  def self.extract(dates_string)
12
12
  dates_string.to_s.split(',').map { |str| new(str) }
@@ -85,7 +85,6 @@ class String
85
85
  # Try to convert the string value into a date.
86
86
  # If given a pattern, use it to parse date, otherwise use default setting to parse it
87
87
  def to_date(pattern = nil)
88
- return '' if empty? # TODO: check if this is used... :/
89
88
  return nil if blank?
90
89
 
91
90
  pattern = '%d%m%Y' if 'ddmmyyyy' == pattern
@@ -3,5 +3,5 @@
3
3
  # This defines the NdrSupport version. If you change it, rebuild and commit the gem.
4
4
  # Use "rake build" to build the gem, see rake -T for all bundler rake tasks.
5
5
  module NdrSupport
6
- VERSION = '5.6.0'
6
+ VERSION = '5.6.1'
7
7
  end
@@ -119,4 +119,22 @@ class WorkingDaysTest < Minitest::Test
119
119
  assert_equal 253, @normal_time.working_days_until(@normal_time + 1.year)
120
120
  assert_equal 253, @normal_date_time.working_days_until(@normal_date_time + 1.year)
121
121
  end
122
+
123
+ test 'against GOV.UK holidays' do
124
+ require 'net/http'
125
+ require 'json'
126
+
127
+ url = 'https://www.gov.uk/bank-holidays/england-and-wales.json'
128
+ response = Net::HTTP.get(URI(url))
129
+
130
+ events = JSON.parse(response)['events']
131
+ events.each do |event|
132
+ event_date = event['date']
133
+ parsed_date = Date.parse(event_date)
134
+
135
+ assert parsed_date.public_holiday?, "#{event_date} should be a public holiday"
136
+ # next if parsed_date.public_holiday?
137
+ # puts "'#{event_date}', # #{parsed_date.strftime('%A')} - #{event['title']}"
138
+ end
139
+ end
122
140
  end
@@ -63,6 +63,12 @@ class DaterangeTest < Minitest::Test
63
63
  assert_equal '1880 2020', dr.source
64
64
  end
65
65
 
66
+ def test_year_range_future
67
+ s = 2.years.from_now.strftime('%Y')
68
+ dr = Daterange.new(s)
69
+ assert_equal s, dr.to_s, "Daterange should support future years up to #{s}"
70
+ end
71
+
66
72
  def test_hyphen_month_input_style
67
73
  dr = Daterange.new('2000-05')
68
74
  assert_equal '05.2000', dr.to_s
@@ -244,8 +244,8 @@ class String::ConversionsTest < Minitest::Test
244
244
  assert_equal Ourdate.build_datetime(1998, 02, 13), '1998-02-13'.to_date('%Y-%m-%d')
245
245
  assert_equal Ourdate.build_datetime(1998, 05, 03), '1998-05-03'.to_date('%Y-%m-%d')
246
246
 
247
- assert ''.to_date('%Y-%m-%d').blank?
248
- assert ' '.to_date('%Y-%m-%d').blank?
247
+ assert_nil ''.to_date('%Y-%m-%d') # Should behave like Rails-defined to_date
248
+ assert_nil ' '.to_date('%Y-%m-%d')
249
249
  end
250
250
 
251
251
  test '%d-%m-%Y string to_date' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.0
4
+ version: 5.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - NCRS Development Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-29 00:00:00.000000000 Z
11
+ date: 2020-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord