ndr_support 5.10.2 → 5.10.4

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