ndr_support 4.2.0 → 5.0.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: 0431ff0d6477d4d32dee799661d6fb0479c86ea4
4
- data.tar.gz: e21749dd5f104eb840870853d6081e7000526907
3
+ metadata.gz: 1530ced81e43a1b40b430d058e20c64bca5dc74b
4
+ data.tar.gz: c643aa8c37ad6ec743341fd3f523336b53142664
5
5
  SHA512:
6
- metadata.gz: 3654651b6776bb76646c894df83598e9b8b1ef53c32b2a4b61986fac0c06fbda1d76489c25e8a42e090bf4b1b3dd3e1da3a539651378f3c1a8a6784a872afe2a
7
- data.tar.gz: ed74b4c1ae7ab6156e92dfb4ec0bdd285a1978698e8c298fcb0e3bbf2d113ec3cb7803abcea86d7eb78bc954a5f763196afdcfc0a3ddd340ec54c74581ae70b0
6
+ metadata.gz: 75f7d12b42e3a782d0719423cf9d1a4a934cc2cc5121d32776107d6119497886766edab5f7404b060645090829f4a8a191ff82dc7530f4608286cfdf36cced3d
7
+ data.tar.gz: a5e4f8ab2400d49df9b8b9b527ed4fe50104734377a67aa27c739338ec527e4d19229286ec834875d0a28d5ffb17543c5a8fbeae1997d9e11227fd73203290bb
data/README.md CHANGED
@@ -1,5 +1,3 @@
1
- *NOTICE: This is the `4.x` branch; please see `master` for the latest developments.*
2
-
3
1
  # NdrSupport [![Build Status](https://travis-ci.org/PublicHealthEngland/ndr_support.svg?branch=master)](https://travis-ci.org/PublicHealthEngland/ndr_support)
4
2
 
5
3
  This is the Public Health England (PHE) National Disease Registers (NDR) Support ruby gem, providing:
data/code_safety.yml CHANGED
@@ -15,7 +15,7 @@ file safety:
15
15
  ".travis.yml":
16
16
  comments: diff failed; reviewed whole file
17
17
  reviewed_by: josh.pencheon
18
- safe_revision: 9d1e8fd6d0e443cbe1a35fedc6d8efda653fb816
18
+ safe_revision: a832dfb2a9c96a46520a8b120632961fb8794aaf
19
19
  CODE_OF_CONDUCT.md:
20
20
  comments:
21
21
  reviewed_by: timgentry
@@ -34,8 +34,8 @@ file safety:
34
34
  safe_revision: 90328cca8494539257e192a63b240a91c89f0616
35
35
  README.md:
36
36
  comments:
37
- reviewed_by: ollietulloch
38
- safe_revision: d9690e3ebcd35c55ee65a8163e80988c1c140428
37
+ reviewed_by: timgentry
38
+ safe_revision: 874d5d63763769a65bba7336099d10b030794b75
39
39
  Rakefile:
40
40
  comments:
41
41
  reviewed_by: timgentry
@@ -52,10 +52,14 @@ file safety:
52
52
  comments:
53
53
  reviewed_by: pauleves
54
54
  safe_revision: f76ad0fe72d42b1ff37553c8194935a8b93a6848
55
+ gemfiles/Gemfile.rails50:
56
+ comments:
57
+ reviewed_by: josh.pencheon
58
+ safe_revision: 55ed1c2a18b9cc4d1d996ee69419f5ee38f87746
55
59
  lib/ndr_support.rb:
56
60
  comments:
57
- reviewed_by: pauleves
58
- safe_revision: 92652deb1e16e6023408633648bd955d7936dbf4
61
+ reviewed_by: josh.pencheon
62
+ safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
59
63
  lib/ndr_support/array.rb:
60
64
  comments:
61
65
  reviewed_by: pauleves
@@ -66,12 +70,12 @@ file safety:
66
70
  safe_revision: 5f9c98dcad6f6889d2431eb98cf07b1f5c3e57be
67
71
  lib/ndr_support/date_and_time_extensions.rb:
68
72
  comments:
69
- reviewed_by: pauleves
70
- safe_revision: 29595e6431587ff9b7db6e3ad3abbb3577bff99c
73
+ reviewed_by: josh.pencheon
74
+ safe_revision: 779e05742a473b06ce1301507b04337a7bb1e36b
71
75
  lib/ndr_support/daterange.rb:
72
76
  comments:
73
- reviewed_by: pauleves
74
- safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
77
+ reviewed_by: josh.pencheon
78
+ safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
75
79
  lib/ndr_support/fixnum/calculations.rb:
76
80
  comments:
77
81
  reviewed_by: pauleves
@@ -115,7 +119,7 @@ file safety:
115
119
  lib/ndr_support/string/cleaning.rb:
116
120
  comments:
117
121
  reviewed_by: josh.pencheon
118
- safe_revision: 9eeed313d57206901bfe1bc0e2ec9c25dad0c996
122
+ safe_revision: 4958fb683115a5941e34a52410ef33d17ff75579
119
123
  lib/ndr_support/string/conversions.rb:
120
124
  comments:
121
125
  reviewed_by: timgentry
@@ -124,10 +128,6 @@ file safety:
124
128
  comments:
125
129
  reviewed_by: timgentry
126
130
  safe_revision: 62337584a32e5c30c2e9af7cd998a9df684885cc
127
- lib/ndr_support/time/conversions.rb:
128
- comments:
129
- reviewed_by: timgentry
130
- safe_revision: 92652deb1e16e6023408633648bd955d7936dbf4
131
131
  lib/ndr_support/utf8_encoding.rb:
132
132
  comments:
133
133
  reviewed_by: timgentry
@@ -147,7 +147,7 @@ file safety:
147
147
  lib/ndr_support/version.rb:
148
148
  comments:
149
149
  reviewed_by: josh.pencheon
150
- safe_revision: 1325c04ab8f3bb6633e067bfbe81daef22238527
150
+ safe_revision: 65f01fdc12e3de67b7e486d43ac4931932fcd22c
151
151
  lib/ndr_support/yaml/serialization_migration.rb:
152
152
  comments:
153
153
  reviewed_by: timgentry
@@ -155,7 +155,7 @@ file safety:
155
155
  ndr_support.gemspec:
156
156
  comments:
157
157
  reviewed_by: josh.pencheon
158
- safe_revision: 74d414793e914a45cbfd409357913ebfc9d99853
158
+ safe_revision: 9a2ce0c2cdefd4726df33199ca8f1a5ece6f3042
159
159
  test/array_test.rb:
160
160
  comments:
161
161
  reviewed_by: timgentry
@@ -166,8 +166,8 @@ file safety:
166
166
  safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
167
167
  test/daterange_test.rb:
168
168
  comments:
169
- reviewed_by: timgentry
170
- safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
169
+ reviewed_by: josh.pencheon
170
+ safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
171
171
  test/fixnum/calculations_test.rb:
172
172
  comments:
173
173
  reviewed_by: timgentry
@@ -186,8 +186,8 @@ file safety:
186
186
  safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
187
187
  test/ourdate_test.rb:
188
188
  comments:
189
- reviewed_by: timgentry
190
- safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
189
+ reviewed_by: josh.pencheon
190
+ safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
191
191
  test/ourtime_test.rb:
192
192
  comments:
193
193
  reviewed_by: timgentry
@@ -211,7 +211,7 @@ file safety:
211
211
  test/string/cleaning_test.rb:
212
212
  comments:
213
213
  reviewed_by: josh.pencheon
214
- safe_revision: 9eeed313d57206901bfe1bc0e2ec9c25dad0c996
214
+ safe_revision: 4958fb683115a5941e34a52410ef33d17ff75579
215
215
  test/string/conversions_test.rb:
216
216
  comments:
217
217
  reviewed_by: timgentry
@@ -220,10 +220,6 @@ file safety:
220
220
  comments:
221
221
  reviewed_by: timgentry
222
222
  safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
223
- test/time/conversions_test.rb:
224
- comments:
225
- reviewed_by: timgentry
226
- safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
227
223
  test/utf8_encoding/control_characters_test.rb:
228
224
  comments:
229
225
  reviewed_by: timgentry
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activerecord', '~> 5.0.0'
6
+ gem 'activesupport', '~> 5.0.0'
data/lib/ndr_support.rb CHANGED
@@ -11,7 +11,6 @@ require 'ndr_support/safe_file'
11
11
  require 'ndr_support/safe_path'
12
12
  require 'ndr_support/string/cleaning'
13
13
  require 'ndr_support/string/conversions'
14
- require 'ndr_support/time/conversions'
15
14
  require 'ndr_support/utf8_encoding'
16
15
  require 'ndr_support/version'
17
16
  require 'ndr_support/yaml/serialization_migration'
@@ -4,32 +4,15 @@ require 'ndr_support/concerns/working_days'
4
4
  [Time, Date, DateTime].each { |klass| klass.send(:include, WorkingDays) }
5
5
 
6
6
  class Date
7
- # Note: default date format is specified in config/environment.rb
8
- def to_verbose
9
- strftime('%d %B %Y')
10
- end # our long format
11
-
12
7
  # to_iso output must be SQL safe for security reasons
13
8
  def to_iso
14
9
  strftime('%Y-%m-%d')
15
10
  end # ISO date format
16
-
17
- def to_ours
18
- to_s
19
- end
20
-
21
- def to_YYYYMMDD # convert dates into format 'YYYYMMDD' - used in tracing
22
- self.year.to_s + self.month.to_s.rjust(2, '0') + self.day.to_s.rjust(2, '0')
23
- end
24
11
  end
25
12
 
26
13
  #-------------------------------------------------------------------------------
27
14
 
28
15
  class Time
29
- def to_ours
30
- strftime('%d.%m.%Y %H:%M')
31
- end # Show times in our format
32
-
33
16
  # to_iso output must be SQL safe for security reasons
34
17
  def to_iso
35
18
  strftime('%Y-%m-%dT%H:%M:%S')
@@ -98,6 +81,3 @@ module NdrSupport
98
81
  end
99
82
  end
100
83
  end
101
-
102
- # Maintain API:
103
- NdrSupport.attempt_date_patch!
@@ -69,10 +69,10 @@ class Daterange
69
69
  def verbose
70
70
  return 'Bad date(s)' unless @date1 && @date2
71
71
  if @date1 == @date2 # single date
72
- @date1.to_verbose
72
+ _verbose(@date1)
73
73
  else # range
74
- 'The period ' + @date1.to_verbose + ' to ' + @date2.to_verbose +
75
- ' inclusive (' + (@date2 - @date1 + 1).to_s + ' days)'
74
+ 'The period ' + _verbose(@date1) + ' to ' + _verbose(@date2) +
75
+ ' inclusive (' + (@date2 - @date1 + 1).to_i.to_s + ' days)'
76
76
  end
77
77
  end
78
78
 
@@ -117,6 +117,10 @@ class Daterange
117
117
 
118
118
  private
119
119
 
120
+ def _verbose(date)
121
+ date.strftime('%d %B %Y')
122
+ end
123
+
120
124
  def tidy_string_if_midnight(datetime)
121
125
  if datetime.hour == 0 && datetime.min == 0 && datetime.sec == 0
122
126
  # it's midnight
@@ -50,14 +50,6 @@ class String
50
50
  postcodeize(:db)
51
51
  when :lpi
52
52
  upcase.delete('^0-9A-Z')
53
- when :gender
54
- if self =~ /\AM(ale)?/i
55
- '1'
56
- elsif self =~ /\AF(emale)?/i
57
- '2'
58
- else
59
- self
60
- end
61
53
  when :sex
62
54
  # SECURE: BNS 2012-10-09: But may behave oddly for multi-line input
63
55
  if self =~ /^M|1/i
@@ -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 = '4.2.0'
6
+ VERSION = '5.0.0'
7
7
  end
data/ndr_support.gemspec CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'activerecord', '>= 3.2.18', '< 5.0.0'
23
- spec.add_dependency 'activesupport', '>= 3.2.18', '< 5.0.0'
22
+ spec.add_dependency 'activerecord', '>= 3.2.22', '< 5.1'
23
+ spec.add_dependency 'activesupport', '>= 3.2.22', '< 5.1'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.7'
26
26
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -123,6 +123,16 @@ class DaterangeTest < Minitest::Test
123
123
  assert_equal '03.2010', dr.to_s # Ideally '03.2010'
124
124
  end
125
125
 
126
+ def test_verbose
127
+ dr = Daterange.new('01.03.2010')
128
+ assert_equal '01 March 2010', dr.verbose
129
+ end
130
+
131
+ def test_verbose_range
132
+ dr = Daterange.new('03.2010 to 2014')
133
+ assert_equal 'The period 01 March 2010 to 31 December 2014 inclusive (1767 days)', dr.verbose
134
+ end
135
+
126
136
  def test_year_intersection
127
137
  dr1 = Daterange.new('2001')
128
138
  dr2 = Daterange.new('2002')
data/test/ourdate_test.rb CHANGED
@@ -4,9 +4,7 @@ require 'test_helper'
4
4
  class OurdateTest < Minitest::Test
5
5
  def test_date_and_time
6
6
  d = Ourdate.build_datetime(2003, 11, 30)
7
- assert_equal '30 November 2003', d.to_verbose
8
7
  assert_equal '2003-11-30', d.to_iso
9
- assert_equal '30.11.2003', d.to_ours
10
8
  assert_equal '30.11.2003', d.to_s
11
9
  end
12
10
 
@@ -94,19 +94,6 @@ class String
94
94
  assert_equal '', ''.clean(:lpi)
95
95
  end
96
96
 
97
- test 'clean gender' do
98
- assert_equal '1', 'M'.clean(:gender)
99
- assert_equal '1', 'male'.clean(:gender)
100
- assert_equal '1', '1'.clean(:gender)
101
- assert_equal '2', 'F'.clean(:gender)
102
- assert_equal '2', 'Female'.clean(:gender)
103
- assert_equal '2', '2'.clean(:gender)
104
- assert_equal '4000', '4000'.clean(:gender)
105
- assert_equal '9', '9'.clean(:gender)
106
- assert_equal 'UNK', 'UNK'.clean(:gender)
107
- assert_equal '', ''.clean(:gender)
108
- end
109
-
110
97
  test 'clean sex' do
111
98
  assert_equal '1', 'male'.clean(:sex)
112
99
  assert_equal '1', '1'.clean(:sex)
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: 4.2.0
4
+ version: 5.0.0
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: 2017-01-06 00:00:00.000000000 Z
11
+ date: 2016-07-12 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: 3.2.18
19
+ version: 3.2.22
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 5.0.0
22
+ version: '5.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: 3.2.18
29
+ version: 3.2.22
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 5.0.0
32
+ version: '5.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: 3.2.18
39
+ version: 3.2.22
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 5.0.0
42
+ version: '5.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: 3.2.18
49
+ version: 3.2.22
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 5.0.0
52
+ version: '5.1'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -244,6 +244,7 @@ files:
244
244
  - gemfiles/Gemfile.rails32
245
245
  - gemfiles/Gemfile.rails41
246
246
  - gemfiles/Gemfile.rails42
247
+ - gemfiles/Gemfile.rails50
247
248
  - lib/ndr_support.rb
248
249
  - lib/ndr_support/array.rb
249
250
  - lib/ndr_support/concerns/working_days.rb
@@ -262,7 +263,6 @@ files:
262
263
  - lib/ndr_support/string/cleaning.rb
263
264
  - lib/ndr_support/string/conversions.rb
264
265
  - lib/ndr_support/tasks.rb
265
- - lib/ndr_support/time/conversions.rb
266
266
  - lib/ndr_support/utf8_encoding.rb
267
267
  - lib/ndr_support/utf8_encoding/control_characters.rb
268
268
  - lib/ndr_support/utf8_encoding/force_binary.rb
@@ -286,7 +286,6 @@ files:
286
286
  - test/string/cleaning_test.rb
287
287
  - test/string/conversions_test.rb
288
288
  - test/test_helper.rb
289
- - test/time/conversions_test.rb
290
289
  - test/utf8_encoding/control_characters_test.rb
291
290
  - test/utf8_encoding/force_binary_test.rb
292
291
  - test/utf8_encoding_test.rb
@@ -311,7 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
310
  version: '0'
312
311
  requirements: []
313
312
  rubyforge_project:
314
- rubygems_version: 2.5.1
313
+ rubygems_version: 2.6.5
315
314
  signing_key:
316
315
  specification_version: 4
317
316
  summary: NDR Support library
@@ -332,7 +331,6 @@ test_files:
332
331
  - test/string/cleaning_test.rb
333
332
  - test/string/conversions_test.rb
334
333
  - test/test_helper.rb
335
- - test/time/conversions_test.rb
336
334
  - test/utf8_encoding/control_characters_test.rb
337
335
  - test/utf8_encoding/force_binary_test.rb
338
336
  - test/utf8_encoding_test.rb
@@ -1,13 +0,0 @@
1
- class Time
2
- # Ruby 1.9 defines Time#to_time natively (as part of the
3
- # stdlib Time, rather than core Time), but it returns
4
- # the time in the local timezone. ActiveSupport contains
5
- # the following definition, but it is only actually used
6
- # by Ruby 1.8.7. We wish to continue with that behaviour,
7
- # as local time zones have caused problems with our
8
- # Time#to_s format (which either formats as '%d.%m.%Y %H:%M'
9
- # or '%d.%m.%Y').
10
- def to_time
11
- self
12
- end
13
- end
@@ -1,15 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Time::ConversionsTest < Minitest::Test
4
- test 'to_time should return same object' do
5
- yaml = '2015-08-06 00:00:00 Z'
6
-
7
- time = yaml.to_time
8
- time2 = time.to_time
9
-
10
- assert Time === time, 'time was not a Time'
11
- assert Time === time2, 'time2 was not a Time'
12
-
13
- assert_equal time.object_id, time2.object_id
14
- end
15
- end