ndr_support 5.10.2 → 5.10.4

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: fbbca09887dac304f0a29b687893c47c70ae8b7bd600a646baa1f2d8a3d0e13f
4
- data.tar.gz: e162d4c2ca88fe68c4f6a6e0af88d9d86b69e409fe5d7fbe8b72daec4d6ac516
3
+ metadata.gz: 8b6a369bc1e742569d0aa4d950f9a816c9e22f3625b3acaf67b9bd75a5355328
4
+ data.tar.gz: 7e6e2054579563d87ad5db6a79cbb9fb059613bfac985ee8aeaf2d12e2db4b3d
5
5
  SHA512:
6
- metadata.gz: dd29e398e40a4eee8ad4da3ad27421a92fc1587f10b96334b981b97de9796961850101132c6fa37389b748b5cb5bad285f7bf6ba736dff47c104ff2cf86e5465
7
- data.tar.gz: '059894e4a5a942d7f4a158fa82f8df14ec0f8899eae140ebcabf3d9235209301ad750f9659d7e6e87eecf236a2aaa35af92703025be3a6f189354cac241f75dd'
6
+ metadata.gz: 870d809da96700fddaf9610a3631b18906327ed75fd72205f75bd98527454c3c1b44c07429b7630e8cf83d989683ea503422cef020829cbf1583e602bd272085
7
+ data.tar.gz: 7ce414782c185518b9e87665cc0563192a6b8f54f1f9ca5aeaf8055b17ac7c08c81fb8da5238b2af3ea841c320d33b81221d243422c6df64135c5d64f91a64a3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## [Unreleased]
2
- * No unreleased changes
2
+ * no unreleased changes
3
+
4
+ ## 5.10.4 / 2024-11-13
5
+ ### Added
6
+ * Support Rails 7.1, 7.2, 8.0, Ruby 3.2, 3.3. Drop support for Rails 6.1
7
+
8
+ ## 5.10.3 / 2024-02-12
9
+ ## Fixed
10
+ * Fixed issue with constant in wrong file/concern
11
+ * Added tests for roman5 cleaning method
12
+ * Separated log10 tests
3
13
 
4
14
  ## 5.10.2 / 2024-02-09
5
15
  ## Fixed
data/code_safety.yml CHANGED
@@ -11,7 +11,7 @@ file safety:
11
11
  ".github/workflows/test.yml":
12
12
  comments:
13
13
  reviewed_by: brian.shand
14
- safe_revision: 2253a90ec8db872590a8167fdebe95d6ed677cc2
14
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
15
15
  ".gitignore":
16
16
  comments:
17
17
  reviewed_by: josh.pencheon
@@ -23,7 +23,7 @@ file safety:
23
23
  CHANGELOG.md:
24
24
  comments:
25
25
  reviewed_by: brian.shand
26
- safe_revision: af6c7ddedf6627de8ec823ff33399c7938cd64b1
26
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
27
27
  CODE_OF_CONDUCT.md:
28
28
  comments:
29
29
  reviewed_by: timgentry
@@ -48,10 +48,6 @@ file safety:
48
48
  comments:
49
49
  reviewed_by: timgentry
50
50
  safe_revision: e33e9dae7f38bc449ce9276515a539836dbbbd53
51
- gemfiles/Gemfile.rails61:
52
- comments:
53
- reviewed_by: brian.shand
54
- safe_revision: 16254a4332aab074a27c8e13859dc4712e707122
55
51
  gemfiles/Gemfile.rails70:
56
52
  comments:
57
53
  reviewed_by: brian.shand
@@ -60,6 +56,14 @@ file safety:
60
56
  comments:
61
57
  reviewed_by: brian.shand
62
58
  safe_revision: 2253a90ec8db872590a8167fdebe95d6ed677cc2
59
+ gemfiles/Gemfile.rails72:
60
+ comments:
61
+ reviewed_by: brian.shand
62
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
63
+ gemfiles/Gemfile.rails80:
64
+ comments:
65
+ reviewed_by: brian.shand
66
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
63
67
  lib/ndr_support.rb:
64
68
  comments:
65
69
  reviewed_by: brian.shand
@@ -75,7 +79,7 @@ file safety:
75
79
  lib/ndr_support/date_and_time_extensions.rb:
76
80
  comments:
77
81
  reviewed_by: brian.shand
78
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
82
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
79
83
  lib/ndr_support/daterange.rb:
80
84
  comments:
81
85
  reviewed_by: brian.shand
@@ -107,11 +111,11 @@ file safety:
107
111
  lib/ndr_support/ourdate.rb:
108
112
  comments:
109
113
  reviewed_by: brian.shand
110
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
114
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
111
115
  lib/ndr_support/ourdate/build_datetime.rb:
112
116
  comments:
113
117
  reviewed_by: brian.shand
114
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
118
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
115
119
  lib/ndr_support/ourtime.rb:
116
120
  comments:
117
121
  reviewed_by: brian.shand
@@ -138,16 +142,16 @@ file safety:
138
142
  safe_revision: f4f7cb0803ea34a2f1ba83495d8bcbd942786bce
139
143
  lib/ndr_support/string/clean_methodable.rb:
140
144
  comments:
141
- reviewed_by: brian.shand
142
- safe_revision: af6c7ddedf6627de8ec823ff33399c7938cd64b1
145
+ reviewed_by: ollietulloch
146
+ safe_revision: ff21f98e6608eedb4b33f977778736b38f9fbacb
143
147
  lib/ndr_support/string/cleaning.rb:
144
148
  comments:
145
- reviewed_by: brian.shand
146
- safe_revision: af6c7ddedf6627de8ec823ff33399c7938cd64b1
149
+ reviewed_by: ollietulloch
150
+ safe_revision: d99c4bf5d2cbbfe78101beff399e7da8645417b2
147
151
  lib/ndr_support/string/conversions.rb:
148
152
  comments:
149
153
  reviewed_by: brian.shand
150
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
154
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
151
155
  lib/ndr_support/tasks.rb:
152
156
  comments:
153
157
  reviewed_by: timgentry
@@ -174,8 +178,8 @@ file safety:
174
178
  safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
175
179
  lib/ndr_support/version.rb:
176
180
  comments:
177
- reviewed_by: brian.shand
178
- safe_revision: a58c1057a2829284ae527bdd66401b1891f28196
181
+ reviewed_by: ollietulloch
182
+ safe_revision: 8cb498126d68a19f880b0cd1b83b127c8ec90a89
179
183
  lib/ndr_support/working_days.rb:
180
184
  comments:
181
185
  reviewed_by: josh.pencheon
@@ -187,7 +191,7 @@ file safety:
187
191
  ndr_support.gemspec:
188
192
  comments:
189
193
  reviewed_by: brian.shand
190
- safe_revision: 2253a90ec8db872590a8167fdebe95d6ed677cc2
194
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
191
195
  test/array_test.rb:
192
196
  comments:
193
197
  reviewed_by: timgentry
@@ -199,11 +203,11 @@ file safety:
199
203
  test/date_and_time_extensions_test.rb:
200
204
  comments:
201
205
  reviewed_by: brian.shand
202
- safe_revision: e977f8c0f8a5c6a1952bd1565b75e16850ef11e0
206
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
203
207
  test/daterange_test.rb:
204
208
  comments:
205
209
  reviewed_by: brian.shand
206
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
210
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
207
211
  test/hash_test.rb:
208
212
  comments:
209
213
  reviewed_by: timgentry
@@ -258,16 +262,16 @@ file safety:
258
262
  safe_revision: b562d0c15ff1b1d565522a47e6bae47ea09706f0
259
263
  test/string/cleaning_test.rb:
260
264
  comments:
261
- reviewed_by: brian.shand
262
- safe_revision: af6c7ddedf6627de8ec823ff33399c7938cd64b1
265
+ reviewed_by: ollietulloch
266
+ safe_revision: d99c4bf5d2cbbfe78101beff399e7da8645417b2
263
267
  test/string/conversions_test.rb:
264
268
  comments:
265
269
  reviewed_by: brian.shand
266
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
270
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
267
271
  test/test_helper.rb:
268
272
  comments:
269
273
  reviewed_by: brian.shand
270
- safe_revision: 8796a1a32273a106a6b1a134a48077cff0176659
274
+ safe_revision: 931e0ac50f7843abd80aa907245936fe907d96f8
271
275
  test/threat_scanner_test.rb:
272
276
  comments:
273
277
  reviewed_by: ollietulloch
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activerecord', '~> 7.2.0'
6
+ gem 'activesupport', '~> 7.2.0'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activerecord', '~> 8.0.0'
6
+ gem 'activesupport', '~> 8.0.0'
@@ -2,6 +2,7 @@ require 'yaml'
2
2
  require 'date'
3
3
  require 'ndr_support/working_days'
4
4
 
5
+ # Extend standard Date class with our custom to_s overrides
5
6
  class Date
6
7
  # to_iso output must be SQL safe for security reasons
7
8
  def to_iso
@@ -12,11 +13,7 @@ class Date
12
13
 
13
14
  def to_datetime
14
15
  # Default timezone for Date is GMT, not local timezone
15
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
16
- ActiveRecord.default_timezone
17
- else
18
- ActiveRecord::Base.default_timezone # Rails <= 6.1
19
- end
16
+ default_timezone = ActiveRecord.default_timezone
20
17
  return in_time_zone.to_datetime if default_timezone == :local
21
18
 
22
19
  orig_to_datetime
@@ -29,7 +26,7 @@ class Date
29
26
  # We keep overriding this for compatibility
30
27
  def to_s(format = :default)
31
28
  if format == :default
32
- to_formatted_s(:default)
29
+ DATE_FORMATS.key?(:default) ? to_fs(:default) : orig_to_s
33
30
  else
34
31
  orig_to_s(format)
35
32
  end
@@ -38,6 +35,7 @@ end
38
35
 
39
36
  #-------------------------------------------------------------------------------
40
37
 
38
+ # Extend standard Time class with our custom to_s overrides
41
39
  class Time
42
40
  # to_iso output must be SQL safe for security reasons
43
41
  def to_iso
@@ -51,7 +49,7 @@ class Time
51
49
  # We keep overriding this for compatibility
52
50
  def to_s(format = :default)
53
51
  if format == :default
54
- to_formatted_s(:default)
52
+ DATE_FORMATS.key?(:default) ? to_fs(:default) : orig_to_s
55
53
  else
56
54
  orig_to_s(format)
57
55
  end
@@ -60,6 +58,7 @@ end
60
58
 
61
59
  #-------------------------------------------------------------------------------
62
60
 
61
+ # Extend standard DateTime class with our custom to_s overrides
63
62
  class DateTime
64
63
  alias orig_to_s to_s
65
64
 
@@ -68,7 +67,7 @@ class DateTime
68
67
  # We keep overriding this for compatibility
69
68
  def to_s(format = :default)
70
69
  if format == :default
71
- to_formatted_s(:default)
70
+ Time::DATE_FORMATS.key?(:default) ? to_fs(:default) : orig_to_s
72
71
  else
73
72
  orig_to_s(format)
74
73
  end
@@ -78,6 +77,7 @@ end
78
77
  #-------------------------------------------------------------------------------
79
78
 
80
79
  module ActiveSupport
80
+ # Extend ActiveSupport::TimeWithZone with our custom to_s overrides
81
81
  class TimeWithZone
82
82
  alias orig_to_s to_s
83
83
 
@@ -86,7 +86,7 @@ module ActiveSupport
86
86
  # We keep overriding this for compatibility
87
87
  def to_s(format = :default)
88
88
  if format == :default
89
- to_formatted_s(:default)
89
+ Time::DATE_FORMATS.key?(:default) ? to_fs(:default) : orig_to_s
90
90
  else
91
91
  orig_to_s(format)
92
92
  end
@@ -96,6 +96,7 @@ end
96
96
 
97
97
  #-------------------------------------------------------------------------------
98
98
 
99
+ # NdrSupport module
99
100
  module NdrSupport
100
101
  class << self
101
102
  # Within the NDR, we change default date formatting, as below.
@@ -120,8 +121,8 @@ module NdrSupport
120
121
  def apply_date_patch!
121
122
  # Ensure we emit "yaml-formatted" string, instead of the revised default format.
122
123
  Psych::Visitors::YAMLTree.class_eval do
123
- def visit_Date(o)
124
- @emitter.scalar o.to_formatted_s(:yaml), nil, nil, true, false, Psych::Nodes::Scalar::ANY
124
+ def visit_Date(o) # rubocop:disable Naming/MethodName, Naming/MethodParameterName
125
+ @emitter.scalar o.to_fs(:yaml), nil, nil, true, false, Psych::Nodes::Scalar::ANY
125
126
  end
126
127
  end
127
128
  end
@@ -10,11 +10,7 @@ class Ourdate
10
10
  def self.build_datetime(year, month = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0)
11
11
  return nil if year.nil?
12
12
 
13
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
14
- ActiveRecord.default_timezone
15
- else
16
- ActiveRecord::Base.default_timezone # Rails <= 6.1
17
- end
13
+ default_timezone = ActiveRecord.default_timezone
18
14
  if default_timezone == :local
19
15
  # Time.local_time(year, month, day, hour, min, sec, usec).to_datetime
20
16
  # Behave like oracle_adapter.rb
@@ -15,11 +15,7 @@ class Ourdate
15
15
  #--
16
16
  # TODO: Use Ourdate.build_datetime everywhere below:
17
17
  #++
18
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
19
- ActiveRecord.default_timezone
20
- else
21
- ActiveRecord::Base.default_timezone # Rails <= 6.1
22
- end
18
+ default_timezone = ActiveRecord.default_timezone
23
19
  if default_timezone == :local
24
20
  build_datetime(current_time.year, current_time.month, current_time.day)
25
21
  else
@@ -3,6 +3,8 @@
3
3
  module CleanMethodable
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ ROMAN_ONE_TO_FIVE_MAPPING = { 'I' => '1', 'II' => '2', 'III' => '3', 'IIII' => '4', 'IV' => '4', 'V' => '5' }.freeze
7
+
6
8
  CLEAN_METHODS = {
7
9
  nhsnumber: :clean_nhsnumber,
8
10
  postcode: :clean_postcode, get_postcode: :clean_postcode,
@@ -7,7 +7,6 @@ class String
7
7
  include CleanMethodable
8
8
 
9
9
  INVALID_CONTROL_CHARS = /[\x00-\x08\x0b-\x0c\x0e-\x1f]/
10
- ROMAN_ONE_TO_FIVE_MAPPING = { 'I' => '1', 'II' => '2', 'III' => '3', 'IIII' => '4', 'IV' => '4', 'V' => '5' }
11
10
 
12
11
  POSTCODE_REGEXP = /
13
12
  ^(
@@ -129,11 +129,7 @@ class String
129
129
 
130
130
  def to_datetime
131
131
  # Default timezone for to_datetime conversion is GMT, not local timezone
132
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
133
- ActiveRecord.default_timezone
134
- else
135
- ActiveRecord::Base.default_timezone # Rails <= 6.1
136
- end
132
+ default_timezone = ActiveRecord.default_timezone
137
133
  return to_time.to_datetime if default_timezone == :local
138
134
 
139
135
  orig_to_datetime
@@ -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.10.2'
6
+ VERSION = '5.10.4'
7
7
  end
data/ndr_support.gemspec CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'activerecord', '>= 6.1', '< 7.2'
22
- spec.add_dependency 'activesupport', '>= 6.1', '< 7.2'
21
+ spec.add_dependency 'activerecord', '>= 7.0', '< 8.1'
22
+ spec.add_dependency 'activesupport', '>= 7.0', '< 8.1'
23
23
 
24
24
  spec.add_development_dependency 'bundler'
25
25
  spec.add_development_dependency 'rake', '>= 12.3.3'
@@ -6,7 +6,11 @@ require 'test_helper'
6
6
  class DateAndTimeExtensionsTest < Minitest::Test
7
7
  def test_date_to_s
8
8
  d = Date.new(2000, 2, 1)
9
- assert_equal '2000-02-01', d.to_default_s, 'Rails 7 default to_s'
9
+ if d.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
10
+ assert_equal '2000-02-01', d.to_default_s, 'Rails 7 default to_s'
11
+ else
12
+ assert_equal '2000-02-01', d.orig_to_s, 'Rails 7 default to_s (via our shim)'
13
+ end
10
14
  assert_equal '01.02.2000', d.to_formatted_s(:default), 'Rails 6 default to_s'
11
15
  assert_equal d.to_formatted_s(:default), d.to_s,
12
16
  'We plan to change default to_s behaviour in a major version bump'
@@ -14,20 +18,33 @@ class DateAndTimeExtensionsTest < Minitest::Test
14
18
 
15
19
  def test_datetime_to_s
16
20
  bst_datetime = DateTime.new(2014, 4, 1, 0, 0, 0, '+1')
17
- assert_equal '2014-04-01T00:00:00+01:00', bst_datetime.to_default_s, 'Rails 7 default to_s'
21
+ if bst_datetime.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
22
+ assert_equal '2014-04-01T00:00:00+01:00', bst_datetime.to_default_s, 'Rails 7 default to_s'
23
+ else
24
+ assert_equal '2014-04-01T00:00:00+01:00', bst_datetime.orig_to_s, 'Rails 7 default to_s (via our shim)'
25
+ end
18
26
  assert_equal '01.04.2014', bst_datetime.to_formatted_s(:default), 'Rails 6 default to_s'
19
27
  assert_equal bst_datetime.to_formatted_s(:default), bst_datetime.to_s,
20
28
  'We plan to change default to_s behaviour in a major version bump'
21
29
 
22
30
  gmt_datetime = DateTime.new(2014, 3, 1, 0, 0, 0, '+0')
23
- assert_equal '2014-03-01T00:00:00+00:00', gmt_datetime.to_default_s, 'Rails 7 default to_s'
31
+ if gmt_datetime.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
32
+ assert_equal '2014-03-01T00:00:00+00:00', gmt_datetime.to_default_s, 'Rails 7 default to_s'
33
+ else
34
+ assert_equal '2014-03-01T00:00:00+00:00', gmt_datetime.orig_to_s, 'Rails 7 default to_s (via our shim)'
35
+ end
24
36
  assert_equal '01.03.2014', gmt_datetime.to_formatted_s(:default), 'Rails 6 default to_s'
25
37
  assert_equal gmt_datetime.to_formatted_s(:default), gmt_datetime.to_s,
26
38
  'We plan to change default to_s behaviour in a major version bump'
27
39
 
28
40
  datetime_with_hhmmss = DateTime.new(2014, 4, 1, 12, 35, 11, '+0')
29
- assert_equal '2014-04-01T12:35:11+00:00', datetime_with_hhmmss.to_default_s,
30
- 'Rails 7 default to_s'
41
+ if datetime_with_hhmmss.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
42
+ assert_equal '2014-04-01T12:35:11+00:00', datetime_with_hhmmss.to_default_s,
43
+ 'Rails 7 default to_s'
44
+ else
45
+ assert_equal '2014-04-01T12:35:11+00:00', datetime_with_hhmmss.orig_to_s,
46
+ 'Rails 7 default to_s (via our shim)'
47
+ end
31
48
  assert_equal '01.04.2014 12:35', datetime_with_hhmmss.to_formatted_s(:default),
32
49
  'Rails 6 default to_s'
33
50
  assert_equal datetime_with_hhmmss.to_formatted_s(:default), datetime_with_hhmmss.to_s,
@@ -36,7 +53,11 @@ class DateAndTimeExtensionsTest < Minitest::Test
36
53
 
37
54
  def test_time_to_s
38
55
  time = Time.new(2014, 4, 1, 12, 35, 11.5, '+01:00')
39
- assert_equal '2014-04-01 12:35:11 +0100', time.to_default_s, 'Rails 7 default to_s'
56
+ if time.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
57
+ assert_equal '2014-04-01 12:35:11 +0100', time.to_default_s, 'Rails 7 default to_s'
58
+ else
59
+ assert_equal '2014-04-01 12:35:11 +0100', time.orig_to_s, 'Rails 7 default to_s (via our shim)'
60
+ end
40
61
  assert_equal '01.04.2014 12:35', time.to_formatted_s(:default), 'Rails 6 default to_s'
41
62
  assert_equal time.to_formatted_s(:default), time.to_s,
42
63
  'We plan to change default to_s behaviour in a major version bump'
@@ -47,8 +68,13 @@ class DateAndTimeExtensionsTest < Minitest::Test
47
68
  assert_equal 'BST', time_with_zone.zone
48
69
  # Without ndr_support extensions, we'd expect "2014-04-01 12:35:11 +0100"
49
70
  # but we have to trick the database into assuming all times are UTC to retain local time
50
- assert_equal '2014-04-01 12:35:11 UTC', time_with_zone.to_default_s,
51
- 'Rails 7 default to_s with our date and time formatting'
71
+ if time_with_zone.respond_to?(:to_default_s) # Only defined on Rails <= 7.1
72
+ assert_equal '2014-04-01 12:35:11 UTC', time_with_zone.to_default_s,
73
+ 'Rails 7 default to_s with our date and time formatting'
74
+ else
75
+ assert_equal '2014-04-01 12:35:11 +0100', time_with_zone.orig_to_s,
76
+ 'Rails 7 default to_s with our date and time formatting (via our shim)'
77
+ end
52
78
  assert_equal '01.04.2014 12:35', time_with_zone.to_formatted_s(:default), 'Rails 6 default to_s'
53
79
  assert_equal time_with_zone.to_formatted_s(:default), time_with_zone.to_s,
54
80
  'We plan to change default to_s behaviour in a major version bump'
@@ -166,11 +166,7 @@ class DaterangeTest < Minitest::Test
166
166
  def test_date_with_daylight_saving
167
167
  dr = Daterange.new(Date.new(2017, 9, 2)) # During daylight saving
168
168
  assert_equal '02.09.2017', dr.to_s
169
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
170
- ActiveRecord.default_timezone
171
- else
172
- ActiveRecord::Base.default_timezone # Rails <= 6.1
173
- end
169
+ default_timezone = ActiveRecord.default_timezone
174
170
  return unless default_timezone == :local
175
171
 
176
172
  assert_equal Date.new(2017, 9, 2).in_time_zone.utc_offset, dr.date1.utc_offset, 'Expect consistent offset'
@@ -30,7 +30,9 @@ class String
30
30
  assert_equal 'IP222', 'IP222'.postcodeize(:db)
31
31
  assert_equal 'IP222E', 'IP222E'.postcodeize(:db)
32
32
  assert_equal 'HANTS', 'HANTS'.postcodeize(:db)
33
- # Log10
33
+ end
34
+
35
+ test 'clean_log10' do
34
36
  assert_equal '0.0', '0'.clean(:log10)
35
37
  assert_equal '-10.1', '-10.1'.clean(:log10)
36
38
  assert_match(/\A0.041392685158225[0-9]*\z/, '1.1'.clean(:log10),
@@ -38,6 +40,17 @@ class String
38
40
  assert_equal 'BILBO', 'BILBO'.clean(:log10)
39
41
  end
40
42
 
43
+ test 'clean_roman5' do
44
+ assert_equal '12345', 'I2345'.clean(:roman5)
45
+ assert_equal '12345', '1II345'.clean(:roman5)
46
+ assert_equal '12345', '12III45'.clean(:roman5)
47
+ assert_equal '12345', '123IIII5'.clean(:roman5)
48
+ assert_equal '12345', '123IIII5'.clean(:roman5)
49
+ assert_equal '12345', '123IV5'.clean(:roman5)
50
+ assert_equal '12345', '1234V'.clean(:roman5)
51
+ assert_equal '12345', '1II34V'.clean(:roman5)
52
+ end
53
+
41
54
  test 'xml_unsafe?' do
42
55
  without_control = 'hello world!'
43
56
  refute without_control.xml_unsafe?
@@ -84,11 +84,7 @@ class String::ConversionsTest < Minitest::Test
84
84
 
85
85
  test 'should convert strings to DateTime correctly' do
86
86
  assert_equal 0, '2018-01-02'.to_datetime.utc_offset
87
- default_timezone = if ActiveRecord.respond_to?(:default_timezone)
88
- ActiveRecord.default_timezone
89
- else
90
- ActiveRecord::Base.default_timezone # Rails <= 6.1
91
- end
87
+ default_timezone = ActiveRecord.default_timezone
92
88
  return unless default_timezone == :local
93
89
 
94
90
  assert_equal Time.new(2017, 9, 2).utc_offset, '2017-09-02'.to_datetime.utc_offset, 'Expect consistent offset'
data/test/test_helper.rb CHANGED
@@ -16,11 +16,7 @@ NdrSupport.apply_era_date_formats!
16
16
  # require all dates to be stored in UTC in the database.
17
17
  # Thus a birth date of 1975-06-01 would be stored as 1975-05-31 23.00.00.
18
18
  # Instead, we want to store all times in local time.
19
- if ActiveRecord.respond_to?(:default_timezone=)
20
- ActiveRecord.default_timezone = :local
21
- else
22
- ActiveRecord::Base.default_timezone = :local # Rails <= 6.1
23
- end
19
+ ActiveRecord.default_timezone = :local
24
20
  ActiveRecord::Base.time_zone_aware_attributes = false
25
21
  Time.zone = 'London'
26
22
 
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.10.2
4
+ version: 5.10.4
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: 2024-02-09 00:00:00.000000000 Z
11
+ date: 2024-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,40 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.1'
19
+ version: '7.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.2'
22
+ version: '8.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '6.1'
29
+ version: '7.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.2'
32
+ version: '8.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activesupport
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '6.1'
39
+ version: '7.0'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.2'
42
+ version: '8.1'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '6.1'
49
+ version: '7.0'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '7.2'
52
+ version: '8.1'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -220,9 +220,10 @@ files:
220
220
  - README.md
221
221
  - Rakefile
222
222
  - code_safety.yml
223
- - gemfiles/Gemfile.rails61
224
223
  - gemfiles/Gemfile.rails70
225
224
  - gemfiles/Gemfile.rails71
225
+ - gemfiles/Gemfile.rails72
226
+ - gemfiles/Gemfile.rails80
226
227
  - lib/ndr_support.rb
227
228
  - lib/ndr_support/array.rb
228
229
  - lib/ndr_support/concerns/working_days.rb
@@ -299,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
300
  - !ruby/object:Gem::Version
300
301
  version: '0'
301
302
  requirements: []
302
- rubygems_version: 3.2.33
303
+ rubygems_version: 3.3.27
303
304
  signing_key:
304
305
  specification_version: 4
305
306
  summary: NDR Support library
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '..'
4
-
5
- gem 'activerecord', '~> 6.1.0'
6
- gem 'activesupport', '~> 6.1.0'