ndr_support 5.6.0 → 5.6.1

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