ndr_support 5.3.0 → 5.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/code_safety.yml +36 -28
- data/gemfiles/Gemfile.rails51 +9 -0
- data/lib/ndr_support.rb +1 -0
- data/lib/ndr_support/date_and_time_extensions.rb +9 -0
- data/lib/ndr_support/obfuscator.rb +24 -0
- data/lib/ndr_support/ourtime.rb +12 -18
- data/lib/ndr_support/string/cleaning.rb +1 -1
- data/lib/ndr_support/string/conversions.rb +8 -0
- data/lib/ndr_support/version.rb +1 -1
- data/ndr_support.gemspec +2 -2
- data/test/daterange_test.rb +8 -0
- data/test/obfuscator_test.rb +26 -0
- data/test/ourtime_test.rb +22 -4
- data/test/string/cleaning_test.rb +7 -0
- data/test/string/conversions_test.rb +6 -0
- data/test/test_helper.rb +1 -0
- metadata +15 -12
- data/gemfiles/Gemfile.rails32 +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32516de19ac1430b0cb34bbe3bb334cfc782c1f4
|
4
|
+
data.tar.gz: 561996469be148817ff80150a3bcd90e637dd14b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8ff33a5d7f85ad3e32e424f227ad94e26ba93d1fa45a9461a48bb27208380bd614534b4fa8d7b3f8eb9fa1a3ef7cacf84a77d6550f932f827c51ac1ac3e9631
|
7
|
+
data.tar.gz: 400450cc5d245dda33005cabf8c8076aed790f6ab4a0722f03f60e149c82be31739520a4464d9e396de7389edbf3621ebc5737c60b2b7b800ece6d00f065d09b
|
data/.travis.yml
CHANGED
data/code_safety.yml
CHANGED
@@ -10,8 +10,8 @@ file safety:
|
|
10
10
|
safe_revision: a02f14cbf1fc36fbaf820365fdedfdc9af326db1
|
11
11
|
".travis.yml":
|
12
12
|
comments: diff failed; reviewed whole file
|
13
|
-
reviewed_by:
|
14
|
-
safe_revision:
|
13
|
+
reviewed_by: brian.shand
|
14
|
+
safe_revision: fb10f9e24cfe0dde8bba65e61ff46d2b9fe2d7fb
|
15
15
|
CODE_OF_CONDUCT.md:
|
16
16
|
comments:
|
17
17
|
reviewed_by: timgentry
|
@@ -36,10 +36,6 @@ file safety:
|
|
36
36
|
comments:
|
37
37
|
reviewed_by: timgentry
|
38
38
|
safe_revision: e33e9dae7f38bc449ce9276515a539836dbbbd53
|
39
|
-
gemfiles/Gemfile.rails32:
|
40
|
-
comments:
|
41
|
-
reviewed_by: pauleves
|
42
|
-
safe_revision: f76ad0fe72d42b1ff37553c8194935a8b93a6848
|
43
39
|
gemfiles/Gemfile.rails41:
|
44
40
|
comments:
|
45
41
|
reviewed_by: pauleves
|
@@ -52,10 +48,14 @@ file safety:
|
|
52
48
|
comments:
|
53
49
|
reviewed_by: josh.pencheon
|
54
50
|
safe_revision: 55ed1c2a18b9cc4d1d996ee69419f5ee38f87746
|
51
|
+
gemfiles/Gemfile.rails51:
|
52
|
+
comments:
|
53
|
+
reviewed_by: brian.shand
|
54
|
+
safe_revision: 4e87fd9d64fc0f15b359ba60fc48cda54453c647
|
55
55
|
lib/ndr_support.rb:
|
56
56
|
comments:
|
57
|
-
reviewed_by:
|
58
|
-
safe_revision:
|
57
|
+
reviewed_by: brian.shand
|
58
|
+
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
59
59
|
lib/ndr_support/array.rb:
|
60
60
|
comments:
|
61
61
|
reviewed_by: pauleves
|
@@ -66,8 +66,8 @@ file safety:
|
|
66
66
|
safe_revision: 5f9c98dcad6f6889d2431eb98cf07b1f5c3e57be
|
67
67
|
lib/ndr_support/date_and_time_extensions.rb:
|
68
68
|
comments:
|
69
|
-
reviewed_by:
|
70
|
-
safe_revision:
|
69
|
+
reviewed_by: brian.shand
|
70
|
+
safe_revision: 0a06fed3e7530185497f786decdb77a62d35e101
|
71
71
|
lib/ndr_support/daterange.rb:
|
72
72
|
comments:
|
73
73
|
reviewed_by: josh.pencheon
|
@@ -92,14 +92,18 @@ file safety:
|
|
92
92
|
comments:
|
93
93
|
reviewed_by: pauleves
|
94
94
|
safe_revision: 4a4ed24d2cfe7e1736baadf4cf6e0fece6823be1
|
95
|
+
lib/ndr_support/obfuscator.rb:
|
96
|
+
comments:
|
97
|
+
reviewed_by: brian.shand
|
98
|
+
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
95
99
|
lib/ndr_support/ourdate.rb:
|
96
100
|
comments:
|
97
101
|
reviewed_by: pauleves
|
98
102
|
safe_revision: a18fb5c6c360806a177a9c5584458586e90b3530
|
99
103
|
lib/ndr_support/ourtime.rb:
|
100
104
|
comments:
|
101
|
-
reviewed_by:
|
102
|
-
safe_revision:
|
105
|
+
reviewed_by: brian.shand
|
106
|
+
safe_revision: 73527378c53b7ac00d1037155572fe3f01324992
|
103
107
|
lib/ndr_support/password.rb:
|
104
108
|
comments: with input from brian.shand
|
105
109
|
reviewed_by: josh.pencheon
|
@@ -115,7 +119,7 @@ file safety:
|
|
115
119
|
lib/ndr_support/safe_file.rb:
|
116
120
|
comments:
|
117
121
|
reviewed_by: timgentry
|
118
|
-
safe_revision: 033819a6ada448551c71a72bbbef4652be3d9c40
|
122
|
+
safe_revision: '033819a6ada448551c71a72bbbef4652be3d9c40'
|
119
123
|
lib/ndr_support/safe_path.rb:
|
120
124
|
comments:
|
121
125
|
reviewed_by: timgentry
|
@@ -123,11 +127,11 @@ file safety:
|
|
123
127
|
lib/ndr_support/string/cleaning.rb:
|
124
128
|
comments:
|
125
129
|
reviewed_by: brian.shand
|
126
|
-
safe_revision:
|
130
|
+
safe_revision: 60cc69774d5aff92252558feae9604544def7583
|
127
131
|
lib/ndr_support/string/conversions.rb:
|
128
132
|
comments:
|
129
|
-
reviewed_by:
|
130
|
-
safe_revision:
|
133
|
+
reviewed_by: brian.shand
|
134
|
+
safe_revision: 0a06fed3e7530185497f786decdb77a62d35e101
|
131
135
|
lib/ndr_support/tasks.rb:
|
132
136
|
comments:
|
133
137
|
reviewed_by: timgentry
|
@@ -151,15 +155,15 @@ file safety:
|
|
151
155
|
lib/ndr_support/version.rb:
|
152
156
|
comments:
|
153
157
|
reviewed_by: brian.shand
|
154
|
-
safe_revision:
|
158
|
+
safe_revision: b27cf809b06814e6c1373e7b069b6537eaae3e15
|
155
159
|
lib/ndr_support/yaml/serialization_migration.rb:
|
156
160
|
comments:
|
157
161
|
reviewed_by: timgentry
|
158
162
|
safe_revision: 29595e6431587ff9b7db6e3ad3abbb3577bff99c
|
159
163
|
ndr_support.gemspec:
|
160
164
|
comments:
|
161
|
-
reviewed_by:
|
162
|
-
safe_revision:
|
165
|
+
reviewed_by: brian.shand
|
166
|
+
safe_revision: fb10f9e24cfe0dde8bba65e61ff46d2b9fe2d7fb
|
163
167
|
test/array_test.rb:
|
164
168
|
comments:
|
165
169
|
reviewed_by: timgentry
|
@@ -170,8 +174,8 @@ file safety:
|
|
170
174
|
safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
|
171
175
|
test/daterange_test.rb:
|
172
176
|
comments:
|
173
|
-
reviewed_by:
|
174
|
-
safe_revision:
|
177
|
+
reviewed_by: brian.shand
|
178
|
+
safe_revision: 9a61389244a4e8e271515ab792aa5a9f8674eb1f
|
175
179
|
test/fixnum/calculations_test.rb:
|
176
180
|
comments:
|
177
181
|
reviewed_by: timgentry
|
@@ -188,14 +192,18 @@ file safety:
|
|
188
192
|
comments:
|
189
193
|
reviewed_by: timgentry
|
190
194
|
safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
|
195
|
+
test/obfuscator_test.rb:
|
196
|
+
comments:
|
197
|
+
reviewed_by: brian.shand
|
198
|
+
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
191
199
|
test/ourdate_test.rb:
|
192
200
|
comments:
|
193
201
|
reviewed_by: josh.pencheon
|
194
202
|
safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
|
195
203
|
test/ourtime_test.rb:
|
196
204
|
comments:
|
197
|
-
reviewed_by:
|
198
|
-
safe_revision:
|
205
|
+
reviewed_by: brian.shand
|
206
|
+
safe_revision: b9bc1e18464a27f84e69ebea083dd6a8d351c8cb
|
199
207
|
test/password_test.rb:
|
200
208
|
comments: with input from brian.shand
|
201
209
|
reviewed_by: josh.pencheon
|
@@ -219,15 +227,15 @@ file safety:
|
|
219
227
|
test/string/cleaning_test.rb:
|
220
228
|
comments:
|
221
229
|
reviewed_by: brian.shand
|
222
|
-
safe_revision:
|
230
|
+
safe_revision: 60cc69774d5aff92252558feae9604544def7583
|
223
231
|
test/string/conversions_test.rb:
|
224
232
|
comments:
|
225
|
-
reviewed_by:
|
226
|
-
safe_revision:
|
233
|
+
reviewed_by: brian.shand
|
234
|
+
safe_revision: 1955bf30ffe581610981f0148569e252cba02926
|
227
235
|
test/test_helper.rb:
|
228
236
|
comments:
|
229
|
-
reviewed_by:
|
230
|
-
safe_revision:
|
237
|
+
reviewed_by: brian.shand
|
238
|
+
safe_revision: 4533a155924f8a1415dd64e251a7f8311ece3bd8
|
231
239
|
test/utf8_encoding/control_characters_test.rb:
|
232
240
|
comments:
|
233
241
|
reviewed_by: timgentry
|
data/lib/ndr_support.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'yaml'
|
2
|
+
require 'date'
|
2
3
|
|
3
4
|
require 'ndr_support/concerns/working_days'
|
4
5
|
[Time, Date, DateTime].each { |klass| klass.send(:include, WorkingDays) }
|
@@ -8,6 +9,14 @@ class Date
|
|
8
9
|
def to_iso
|
9
10
|
strftime('%Y-%m-%d')
|
10
11
|
end # ISO date format
|
12
|
+
|
13
|
+
alias orig_to_datetime to_datetime
|
14
|
+
|
15
|
+
def to_datetime
|
16
|
+
# Default timezone for Date is GMT, not local timezone
|
17
|
+
return in_time_zone.to_datetime if ActiveRecord::Base.default_timezone == :local
|
18
|
+
orig_to_datetime
|
19
|
+
end
|
11
20
|
end
|
12
21
|
|
13
22
|
#-------------------------------------------------------------------------------
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module NdrSupport
|
2
|
+
# Contains logic for consistently obfuscating names and addresses
|
3
|
+
# using a simple substitution cipher.
|
4
|
+
module Obfuscator
|
5
|
+
extend self
|
6
|
+
|
7
|
+
# Set default obfuscation seed
|
8
|
+
def setup(seed)
|
9
|
+
@seed = seed
|
10
|
+
end
|
11
|
+
|
12
|
+
# Obfuscate a name or address, either with the given seed, or default seed
|
13
|
+
def obfuscate(name, seed = nil)
|
14
|
+
rnd = Random.new(seed || @seed)
|
15
|
+
vowels = %w(A E I O U)
|
16
|
+
consonants = ('A'..'Z').to_a - vowels
|
17
|
+
digits = ('0'..'9').to_a
|
18
|
+
dict = Hash[(vowels + consonants + digits).zip(vowels.shuffle(random: rnd) +
|
19
|
+
consonants.shuffle(random: rnd) +
|
20
|
+
digits.shuffle(random: rnd))]
|
21
|
+
name.upcase.split(//).map { |s| dict[s] || s }.join
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/ndr_support/ourtime.rb
CHANGED
@@ -6,6 +6,11 @@ require 'ndr_support/ourdate'
|
|
6
6
|
class Ourtime
|
7
7
|
attr_reader :thetime
|
8
8
|
|
9
|
+
def self.zone
|
10
|
+
@zone ||= ActiveSupport::TimeZone.new('London')
|
11
|
+
end
|
12
|
+
|
13
|
+
# TODO: deprecate this...
|
9
14
|
def initialize(x = nil)
|
10
15
|
if x.is_a?(Time)
|
11
16
|
@thetime = x
|
@@ -27,25 +32,14 @@ class Ourtime
|
|
27
32
|
@thetime.nil? && @source.blank?
|
28
33
|
end
|
29
34
|
|
35
|
+
private
|
36
|
+
|
30
37
|
def source=(s)
|
31
|
-
|
32
|
-
# Re-parse our own timestamps [+- seconds] without swapping month / day
|
33
|
-
@thetime = DateTime.strptime(s, '%d.%m.%Y %H:%M:%S').to_time
|
34
|
-
rescue ArgumentError
|
35
|
-
begin
|
36
|
-
@thetime = DateTime.strptime(s, '%d.%m.%Y %H:%M').to_time
|
37
|
-
rescue ArgumentError
|
38
|
-
@thetime = Time.parse(s)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
# Apply timezone correction for daylight saving
|
42
|
-
if @thetime
|
43
|
-
@thetime = Ourdate.build_datetime(@thetime.year, @thetime.month,
|
44
|
-
@thetime.day, @thetime.hour,
|
45
|
-
@thetime.min, @thetime.sec,
|
46
|
-
@thetime.instance_of?(Time) ? @thetime.usec : 0).to_time
|
47
|
-
end
|
38
|
+
@thetime = zone.parse(s)
|
48
39
|
end
|
49
40
|
|
50
|
-
|
41
|
+
def zone
|
42
|
+
# `delegate` doesn't work for this on Rails 3.2
|
43
|
+
self.class.zone
|
44
|
+
end
|
51
45
|
end
|
@@ -127,6 +127,14 @@ class String
|
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
130
|
+
alias orig_to_datetime to_datetime
|
131
|
+
|
132
|
+
def to_datetime
|
133
|
+
# Default timezone for to_datetime conversion is GMT, not local timezone
|
134
|
+
return to_time.to_datetime if ActiveRecord::Base.default_timezone == :local
|
135
|
+
orig_to_datetime
|
136
|
+
end
|
137
|
+
|
130
138
|
# Try to convert the string value into boolean
|
131
139
|
def to_boolean
|
132
140
|
# SECURE: BNS 2012-10-09: But may behave oddly for multi-line input
|
data/lib/ndr_support/version.rb
CHANGED
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', '>=
|
23
|
-
spec.add_dependency 'activesupport', '>=
|
22
|
+
spec.add_dependency 'activerecord', '>= 4.0.13', '< 5.2'
|
23
|
+
spec.add_dependency 'activesupport', '>= 4.0.13', '< 5.2'
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
26
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/test/daterange_test.rb
CHANGED
@@ -123,6 +123,14 @@ class DaterangeTest < Minitest::Test
|
|
123
123
|
assert_equal '03.2010', dr.to_s # Ideally '03.2010'
|
124
124
|
end
|
125
125
|
|
126
|
+
def test_date_with_daylight_saving
|
127
|
+
dr = Daterange.new(Date.new(2017, 9, 2)) # During daylight saving
|
128
|
+
assert_equal '02.09.2017', dr.to_s
|
129
|
+
return unless ActiveRecord::Base.default_timezone == :local
|
130
|
+
assert_equal Date.new(2017, 9, 2).in_time_zone.utc_offset, dr.date1.utc_offset, 'Expect consistent offset'
|
131
|
+
assert_equal '2017-09-02'.thetime, dr.date1
|
132
|
+
end
|
133
|
+
|
126
134
|
def test_verbose
|
127
135
|
dr = Daterange.new('01.03.2010')
|
128
136
|
assert_equal '01 March 2010', dr.verbose
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# Tests obfuscation library
|
4
|
+
class ObfuscatorTest < Minitest::Test
|
5
|
+
test 'deterministic seed should give consistent obfuscation' do
|
6
|
+
seed1 = 1383023878118423080153274094615300156
|
7
|
+
assert_equal 'CE PSEQQH', NdrSupport::Obfuscator.obfuscate('JO BLOGGS', seed1)
|
8
|
+
assert_equal 'CE PSEQQH', NdrSupport::Obfuscator.obfuscate('JO BLOGGS', seed1),
|
9
|
+
'consistent re-obfuscation'
|
10
|
+
assert_equal 'CE PSEQQH', NdrSupport::Obfuscator.obfuscate('Jo Bloggs', seed1),
|
11
|
+
'case insensitive'
|
12
|
+
assert_equal 'CEZG PTIQQH', NdrSupport::Obfuscator.obfuscate('JOHN BRIGGS', seed1)
|
13
|
+
end
|
14
|
+
|
15
|
+
test 'different seeds should obfuscate differently' do
|
16
|
+
seed2 = 33333285080880515415022777373811069493
|
17
|
+
assert_equal 'VI RQICCZ', NdrSupport::Obfuscator.obfuscate('JO BLOGGS', seed2)
|
18
|
+
end
|
19
|
+
|
20
|
+
test 'test seed setup' do
|
21
|
+
seed3 = 24978785977027615655244702873942606627
|
22
|
+
assert_equal '781 RACO RXHOOX', NdrSupport::Obfuscator.obfuscate('369 Some Street', seed3)
|
23
|
+
NdrSupport::Obfuscator.setup(seed3)
|
24
|
+
assert_equal '781 RACO RXHOOX', NdrSupport::Obfuscator.obfuscate('369 Some Street')
|
25
|
+
end
|
26
|
+
end
|
data/test/ourtime_test.rb
CHANGED
@@ -2,26 +2,44 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
# This tests our Ourtime class
|
4
4
|
class OurtimeTest < Minitest::Test
|
5
|
-
def
|
5
|
+
def test_initialize_with_local_format_string_gmt
|
6
6
|
# Creating an Ourtime from a local-format String (with seconds)
|
7
7
|
ot = Ourtime.new('01.02.1993 04:05:06')
|
8
8
|
assert_equal '1993-02-01 04:05:06', ot.thetime.strftime('%Y-%m-%d %H:%M:%S')
|
9
9
|
assert_kind_of Time, ot.thetime
|
10
|
+
assert_equal 0.hours, ot.thetime.gmt_offset
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_initialize_with_local_format_string_bst
|
14
|
+
# Creating an Ourtime from a local-format String (with seconds)
|
15
|
+
ot = Ourtime.new('01.08.1993 04:05:06')
|
16
|
+
assert_equal '1993-08-01 04:05:06', ot.thetime.strftime('%Y-%m-%d %H:%M:%S')
|
17
|
+
assert_kind_of Time, ot.thetime
|
18
|
+
assert_equal 1.hours, ot.thetime.gmt_offset
|
10
19
|
end
|
11
20
|
|
12
21
|
def test_initialize_with_time
|
13
22
|
# Creating an Ourtime from a Time
|
14
23
|
ot = Ourtime.new(Time.mktime(1993, 2, 1, 4, 5))
|
15
24
|
assert_equal '01.02.1993 04:05', ot.to_s
|
25
|
+
assert_equal 0.hours, ot.thetime.gmt_offset
|
16
26
|
end
|
17
27
|
|
18
28
|
def test_initialize_with_no_parameters
|
19
29
|
assert Ourtime.new.blank? # delegates to empty?
|
20
30
|
end
|
21
31
|
|
22
|
-
def
|
32
|
+
def test_initialize_with_iso_string_bst
|
33
|
+
# Parsing an ISO datetime
|
34
|
+
ot = Ourtime.new('1993-05-05 06:07:08')
|
35
|
+
assert_equal '1993-05-05 06:07:08', ot.thetime.strftime('%Y-%m-%d %H:%M:%S')
|
36
|
+
assert_equal 1.hours, ot.thetime.gmt_offset
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_initialize_with_iso_string_gmt
|
23
40
|
# Parsing an ISO datetime
|
24
|
-
ot = Ourtime.new('1993-
|
25
|
-
assert_equal '1993-
|
41
|
+
ot = Ourtime.new('1993-01-05 06:07:08')
|
42
|
+
assert_equal '1993-01-05 06:07:08', ot.thetime.strftime('%Y-%m-%d %H:%M:%S')
|
43
|
+
assert_equal 0.hours, ot.thetime.gmt_offset
|
26
44
|
end
|
27
45
|
end
|
@@ -208,6 +208,13 @@ class String
|
|
208
208
|
assert_equal 'trailing spaces', 'trailing spaces '.clean(:strip)
|
209
209
|
end
|
210
210
|
|
211
|
+
test 'clean itself' do
|
212
|
+
assert_equal ' leading & trailing spaces ', ' leading & trailing spaces '.clean(:itself)
|
213
|
+
assert_equal 'no leading or trailing spaces', 'no leading or trailing spaces'.clean(:itself)
|
214
|
+
assert_equal ' ', ' '.clean(:itself)
|
215
|
+
assert_equal '', ''.clean(:itself)
|
216
|
+
end
|
217
|
+
|
211
218
|
test 'clean fallback' do
|
212
219
|
assert_equal 'UN KNOWN', 'UN ?KNOWN'.clean(:somethingorother)
|
213
220
|
assert_equal 'UNKNOWN', 'UNKNOWN'.clean(:somethingorother)
|
@@ -78,6 +78,12 @@ class String::ConversionsTest < Minitest::Test
|
|
78
78
|
assert_ymd [2014, 3, 2], '2014/03/02 13:02:01'.to_date
|
79
79
|
end
|
80
80
|
|
81
|
+
test 'should convert strings to DateTime correctly' do
|
82
|
+
assert_equal 0, '2018-01-02'.to_datetime.utc_offset
|
83
|
+
return unless ActiveRecord::Base.default_timezone == :local
|
84
|
+
assert_equal Time.new(2017, 9, 2).utc_offset, '2017-09-02'.to_datetime.utc_offset, 'Expect consistent offset'
|
85
|
+
end
|
86
|
+
|
81
87
|
test 'ParseDate should behave consistently' do
|
82
88
|
# We use ParseDate (and thus Date._parse) for
|
83
89
|
# converting strings to dates. Its behaviour
|
data/test/test_helper.rb
CHANGED
@@ -18,6 +18,7 @@ NdrSupport.apply_era_date_formats!
|
|
18
18
|
# Instead, we want to store all times in local time.
|
19
19
|
ActiveRecord::Base.default_timezone = :local
|
20
20
|
ActiveRecord::Base.time_zone_aware_attributes = false
|
21
|
+
Time.zone = 'London'
|
21
22
|
|
22
23
|
SafePath.configure! File.dirname(__FILE__) + '/resources/filesystem_paths.yml'
|
23
24
|
|
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.3.
|
4
|
+
version: 5.3.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:
|
11
|
+
date: 2018-01-02 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:
|
19
|
+
version: 4.0.13
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '5.
|
22
|
+
version: '5.2'
|
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:
|
29
|
+
version: 4.0.13
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '5.
|
32
|
+
version: '5.2'
|
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:
|
39
|
+
version: 4.0.13
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '5.
|
42
|
+
version: '5.2'
|
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:
|
49
|
+
version: 4.0.13
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '5.
|
52
|
+
version: '5.2'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: bundler
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,10 +234,10 @@ files:
|
|
234
234
|
- README.md
|
235
235
|
- Rakefile
|
236
236
|
- code_safety.yml
|
237
|
-
- gemfiles/Gemfile.rails32
|
238
237
|
- gemfiles/Gemfile.rails41
|
239
238
|
- gemfiles/Gemfile.rails42
|
240
239
|
- gemfiles/Gemfile.rails50
|
240
|
+
- gemfiles/Gemfile.rails51
|
241
241
|
- lib/ndr_support.rb
|
242
242
|
- lib/ndr_support/array.rb
|
243
243
|
- lib/ndr_support/concerns/working_days.rb
|
@@ -248,6 +248,7 @@ files:
|
|
248
248
|
- lib/ndr_support/hash.rb
|
249
249
|
- lib/ndr_support/integer.rb
|
250
250
|
- lib/ndr_support/nil.rb
|
251
|
+
- lib/ndr_support/obfuscator.rb
|
251
252
|
- lib/ndr_support/ourdate.rb
|
252
253
|
- lib/ndr_support/ourtime.rb
|
253
254
|
- lib/ndr_support/password.rb
|
@@ -272,6 +273,7 @@ files:
|
|
272
273
|
- test/hash_test.rb
|
273
274
|
- test/integer_test.rb
|
274
275
|
- test/nil_test.rb
|
276
|
+
- test/obfuscator_test.rb
|
275
277
|
- test/ourdate_test.rb
|
276
278
|
- test/ourtime_test.rb
|
277
279
|
- test/password_test.rb
|
@@ -306,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
306
308
|
version: '0'
|
307
309
|
requirements: []
|
308
310
|
rubyforge_project:
|
309
|
-
rubygems_version: 2.
|
311
|
+
rubygems_version: 2.6.14
|
310
312
|
signing_key:
|
311
313
|
specification_version: 4
|
312
314
|
summary: NDR Support library
|
@@ -318,6 +320,7 @@ test_files:
|
|
318
320
|
- test/hash_test.rb
|
319
321
|
- test/integer_test.rb
|
320
322
|
- test/nil_test.rb
|
323
|
+
- test/obfuscator_test.rb
|
321
324
|
- test/ourdate_test.rb
|
322
325
|
- test/ourtime_test.rb
|
323
326
|
- test/password_test.rb
|