ndr_support 4.2.0 → 5.0.0

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