ndr_support 5.8.4 → 5.9.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 +4 -4
- data/CHANGELOG.md +9 -2
- data/code_safety.yml +90 -82
- data/gemfiles/Gemfile.rails60 +2 -2
- data/gemfiles/Gemfile.rails61 +6 -0
- data/gemfiles/Gemfile.rails70 +6 -0
- data/lib/ndr_support/safe_path.rb +6 -7
- data/lib/ndr_support/version.rb +1 -1
- data/lib/ndr_support/yaml/serialization_migration.rb +10 -1
- data/ndr_support.gemspec +3 -3
- data/test/regexp_range_test.rb +2 -1
- data/test/yaml/serialization_test.rb +4 -6
- metadata +7 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc18cac2fe1d6de32316e751a1f4f9cd8050bdb2c3972e14c62a490a5cb10f15
|
|
4
|
+
data.tar.gz: 627714611718a64058082b873dddd855b6b6434395082d78381e8ad1954f7da6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f2849f48fa7316c6ae326f87b17b95d225a975716d80ad5ae56e4b7a0b01b2f6bf82976c65070b144a5833cb7765516f383c378cccd96a9c60b52daa4e12a31
|
|
7
|
+
data.tar.gz: 862f14d702ebaccd054860aeaae4b93fac9b724dfeeb99581cd8ff0967169a3c267cd205e0ee1893c8b86d03f834db6d1afd7bed59e17f2881a2e80e75824f3c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
|
-
*
|
|
2
|
+
* No unreleased changes
|
|
3
|
+
|
|
4
|
+
## 5.9.0 / 2022-04-26
|
|
5
|
+
## Fixed
|
|
6
|
+
* Support Rails 6.1
|
|
7
|
+
* Support Ruby 3.1
|
|
8
|
+
|
|
9
|
+
## Changed
|
|
10
|
+
* Drop support for Ruby 2.6
|
|
3
11
|
|
|
4
12
|
## 5.8.4 / 2021-12-27
|
|
5
13
|
## Fixed
|
|
@@ -19,7 +27,6 @@
|
|
|
19
27
|
|
|
20
28
|
## 5.8.0 / 2021-04-19
|
|
21
29
|
## Added
|
|
22
|
-
|
|
23
30
|
* Add ability to disable date reversing in Daterange
|
|
24
31
|
|
|
25
32
|
## Fixed
|
data/code_safety.yml
CHANGED
|
@@ -1,115 +1,123 @@
|
|
|
1
1
|
---
|
|
2
2
|
file safety:
|
|
3
3
|
".github/CODEOWNERS":
|
|
4
|
-
comments:
|
|
4
|
+
comments:
|
|
5
5
|
reviewed_by: ollietulloch
|
|
6
6
|
safe_revision: 993f7719b57eb6ddd8dffa7230ed9ffc69f48749
|
|
7
7
|
".github/workflows/lint.yml":
|
|
8
|
-
comments:
|
|
8
|
+
comments:
|
|
9
9
|
reviewed_by: ollietulloch
|
|
10
10
|
safe_revision: 993f7719b57eb6ddd8dffa7230ed9ffc69f48749
|
|
11
11
|
".github/workflows/test.yml":
|
|
12
|
-
comments:
|
|
13
|
-
reviewed_by:
|
|
14
|
-
safe_revision:
|
|
12
|
+
comments:
|
|
13
|
+
reviewed_by: brian.shand
|
|
14
|
+
safe_revision: e91fab5ac8474b001ca3805c6cce8eefa6b49f2d
|
|
15
15
|
".gitignore":
|
|
16
|
-
comments:
|
|
16
|
+
comments:
|
|
17
17
|
reviewed_by: josh.pencheon
|
|
18
18
|
safe_revision: a02f14cbf1fc36fbaf820365fdedfdc9af326db1
|
|
19
19
|
".rubocop.yml":
|
|
20
|
-
comments:
|
|
20
|
+
comments:
|
|
21
21
|
reviewed_by: josh.pencheon
|
|
22
22
|
safe_revision: a02f14cbf1fc36fbaf820365fdedfdc9af326db1
|
|
23
23
|
CHANGELOG.md:
|
|
24
|
-
comments:
|
|
24
|
+
comments:
|
|
25
25
|
reviewed_by: brian.shand
|
|
26
|
-
safe_revision:
|
|
26
|
+
safe_revision: '0317988580be42bc3a3b64680e340223268c525f'
|
|
27
27
|
CODE_OF_CONDUCT.md:
|
|
28
|
-
comments:
|
|
28
|
+
comments:
|
|
29
29
|
reviewed_by: timgentry
|
|
30
30
|
safe_revision: c752769b91c0e782be0acf44e56bbc066a275365
|
|
31
31
|
Gemfile:
|
|
32
|
-
comments:
|
|
32
|
+
comments:
|
|
33
33
|
reviewed_by: timgentry
|
|
34
34
|
safe_revision: 6a7c3764e5315981070eba27b9f0be9d9182476c
|
|
35
35
|
Guardfile:
|
|
36
|
-
comments:
|
|
36
|
+
comments:
|
|
37
37
|
reviewed_by: timgentry
|
|
38
38
|
safe_revision: e33e9dae7f38bc449ce9276515a539836dbbbd53
|
|
39
39
|
LICENSE.txt:
|
|
40
|
-
comments:
|
|
40
|
+
comments:
|
|
41
41
|
reviewed_by: timgentry
|
|
42
42
|
safe_revision: 90328cca8494539257e192a63b240a91c89f0616
|
|
43
43
|
README.md:
|
|
44
|
-
comments:
|
|
44
|
+
comments:
|
|
45
45
|
reviewed_by: ollietulloch
|
|
46
46
|
safe_revision: 993f7719b57eb6ddd8dffa7230ed9ffc69f48749
|
|
47
47
|
Rakefile:
|
|
48
|
-
comments:
|
|
48
|
+
comments:
|
|
49
49
|
reviewed_by: timgentry
|
|
50
50
|
safe_revision: e33e9dae7f38bc449ce9276515a539836dbbbd53
|
|
51
51
|
gemfiles/Gemfile.rails52:
|
|
52
|
-
comments:
|
|
52
|
+
comments:
|
|
53
53
|
reviewed_by: josh.pencheon
|
|
54
54
|
safe_revision: 8a6bedae77d33d0db1b67eaed7972870b6afc993
|
|
55
55
|
gemfiles/Gemfile.rails60:
|
|
56
|
-
comments:
|
|
57
|
-
reviewed_by:
|
|
58
|
-
safe_revision:
|
|
56
|
+
comments:
|
|
57
|
+
reviewed_by: brian.shand
|
|
58
|
+
safe_revision: 16254a4332aab074a27c8e13859dc4712e707122
|
|
59
|
+
gemfiles/Gemfile.rails61:
|
|
60
|
+
comments:
|
|
61
|
+
reviewed_by: brian.shand
|
|
62
|
+
safe_revision: 16254a4332aab074a27c8e13859dc4712e707122
|
|
63
|
+
gemfiles/Gemfile.rails70:
|
|
64
|
+
comments:
|
|
65
|
+
reviewed_by: brian.shand
|
|
66
|
+
safe_revision: 16254a4332aab074a27c8e13859dc4712e707122
|
|
59
67
|
lib/ndr_support.rb:
|
|
60
|
-
comments:
|
|
68
|
+
comments:
|
|
61
69
|
reviewed_by: brian.shand
|
|
62
70
|
safe_revision: 44fbdf72f47f4022c7dc9148150ebc18589dac8f
|
|
63
71
|
lib/ndr_support/array.rb:
|
|
64
|
-
comments:
|
|
72
|
+
comments:
|
|
65
73
|
reviewed_by: pauleves
|
|
66
74
|
safe_revision: 4a4ed24d2cfe7e1736baadf4cf6e0fece6823be1
|
|
67
75
|
lib/ndr_support/concerns/working_days.rb:
|
|
68
|
-
comments:
|
|
76
|
+
comments:
|
|
69
77
|
reviewed_by: brian.shand
|
|
70
78
|
safe_revision: 42b82bdc466503800c021263899cdbbe444b78b0
|
|
71
79
|
lib/ndr_support/date_and_time_extensions.rb:
|
|
72
|
-
comments:
|
|
80
|
+
comments:
|
|
73
81
|
reviewed_by: josh.pencheon
|
|
74
82
|
safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
|
|
75
83
|
lib/ndr_support/daterange.rb:
|
|
76
|
-
comments:
|
|
84
|
+
comments:
|
|
77
85
|
reviewed_by: brian.shand
|
|
78
86
|
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
|
79
87
|
lib/ndr_support/hash.rb:
|
|
80
|
-
comments:
|
|
88
|
+
comments:
|
|
81
89
|
reviewed_by: pauleves
|
|
82
90
|
safe_revision: 506a317e59d0ccb5b32d813b74d822f35a55cea9
|
|
83
91
|
lib/ndr_support/integer/calculations.rb:
|
|
84
|
-
comments:
|
|
92
|
+
comments:
|
|
85
93
|
reviewed_by: josh.pencheon
|
|
86
94
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
|
87
95
|
lib/ndr_support/integer/rounding.rb:
|
|
88
|
-
comments:
|
|
96
|
+
comments:
|
|
89
97
|
reviewed_by: josh.pencheon
|
|
90
98
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
|
91
99
|
lib/ndr_support/integer/working_days.rb:
|
|
92
|
-
comments:
|
|
100
|
+
comments:
|
|
93
101
|
reviewed_by: josh.pencheon
|
|
94
102
|
safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
|
|
95
103
|
lib/ndr_support/nil.rb:
|
|
96
|
-
comments:
|
|
104
|
+
comments:
|
|
97
105
|
reviewed_by: pauleves
|
|
98
106
|
safe_revision: 4a4ed24d2cfe7e1736baadf4cf6e0fece6823be1
|
|
99
107
|
lib/ndr_support/obfuscator.rb:
|
|
100
|
-
comments:
|
|
108
|
+
comments:
|
|
101
109
|
reviewed_by: brian.shand
|
|
102
110
|
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
|
103
111
|
lib/ndr_support/ourdate.rb:
|
|
104
|
-
comments:
|
|
112
|
+
comments:
|
|
105
113
|
reviewed_by: brian.shand
|
|
106
114
|
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
|
107
115
|
lib/ndr_support/ourdate/build_datetime.rb:
|
|
108
|
-
comments:
|
|
116
|
+
comments:
|
|
109
117
|
reviewed_by: brian.shand
|
|
110
118
|
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
|
111
119
|
lib/ndr_support/ourtime.rb:
|
|
112
|
-
comments:
|
|
120
|
+
comments:
|
|
113
121
|
reviewed_by: ollietulloch
|
|
114
122
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
115
123
|
lib/ndr_support/password.rb:
|
|
@@ -121,107 +129,107 @@ file safety:
|
|
|
121
129
|
reviewed_by: josh.pencheon
|
|
122
130
|
safe_revision: f5d1ba50d378286c0541f300d73844240e2eb7c1
|
|
123
131
|
lib/ndr_support/regexp_range.rb:
|
|
124
|
-
comments:
|
|
132
|
+
comments:
|
|
125
133
|
reviewed_by: pauleves
|
|
126
134
|
safe_revision: f9341d1c7f797f9fe81af937c383d41c23872b2f
|
|
127
135
|
lib/ndr_support/safe_file.rb:
|
|
128
|
-
comments:
|
|
136
|
+
comments:
|
|
129
137
|
reviewed_by: josh.pencheon
|
|
130
138
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
|
131
139
|
lib/ndr_support/safe_path.rb:
|
|
132
|
-
comments:
|
|
133
|
-
reviewed_by:
|
|
134
|
-
safe_revision:
|
|
140
|
+
comments:
|
|
141
|
+
reviewed_by: brian.shand
|
|
142
|
+
safe_revision: f4f7cb0803ea34a2f1ba83495d8bcbd942786bce
|
|
135
143
|
lib/ndr_support/string/cleaning.rb:
|
|
136
|
-
comments:
|
|
144
|
+
comments:
|
|
137
145
|
reviewed_by: brianshand
|
|
138
146
|
safe_revision: b7b033ad9773cc9037c408a7763b113d31cbf191
|
|
139
147
|
lib/ndr_support/string/conversions.rb:
|
|
140
|
-
comments:
|
|
148
|
+
comments:
|
|
141
149
|
reviewed_by: ollietulloch
|
|
142
150
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
143
151
|
lib/ndr_support/tasks.rb:
|
|
144
|
-
comments:
|
|
152
|
+
comments:
|
|
145
153
|
reviewed_by: timgentry
|
|
146
154
|
safe_revision: 62337584a32e5c30c2e9af7cd998a9df684885cc
|
|
147
155
|
lib/ndr_support/threat_scanner.rb:
|
|
148
|
-
comments:
|
|
156
|
+
comments:
|
|
149
157
|
reviewed_by: brianshand
|
|
150
158
|
safe_revision: befa1d4f27448d5be4e133f442c2b5fbac7d8f25
|
|
151
159
|
lib/ndr_support/utf8_encoding.rb:
|
|
152
|
-
comments:
|
|
160
|
+
comments:
|
|
153
161
|
reviewed_by: josh.pencheon
|
|
154
162
|
safe_revision: 8e024a4bacfd36e172aad4b800f1960faae0b4b6
|
|
155
163
|
lib/ndr_support/utf8_encoding/control_characters.rb:
|
|
156
|
-
comments:
|
|
164
|
+
comments:
|
|
157
165
|
reviewed_by: ollietulloch
|
|
158
166
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
159
167
|
lib/ndr_support/utf8_encoding/force_binary.rb:
|
|
160
|
-
comments:
|
|
168
|
+
comments:
|
|
161
169
|
reviewed_by: ollietulloch
|
|
162
170
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
163
171
|
lib/ndr_support/utf8_encoding/object_support.rb:
|
|
164
|
-
comments:
|
|
172
|
+
comments:
|
|
165
173
|
reviewed_by: ollietulloch
|
|
166
174
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
167
175
|
lib/ndr_support/version.rb:
|
|
168
|
-
comments:
|
|
176
|
+
comments:
|
|
169
177
|
reviewed_by: brian.shand
|
|
170
|
-
safe_revision:
|
|
178
|
+
safe_revision: '0317988580be42bc3a3b64680e340223268c525f'
|
|
171
179
|
lib/ndr_support/working_days.rb:
|
|
172
|
-
comments:
|
|
180
|
+
comments:
|
|
173
181
|
reviewed_by: josh.pencheon
|
|
174
182
|
safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
|
|
175
183
|
lib/ndr_support/yaml/serialization_migration.rb:
|
|
176
|
-
comments:
|
|
177
|
-
reviewed_by:
|
|
178
|
-
safe_revision:
|
|
184
|
+
comments:
|
|
185
|
+
reviewed_by: brian.shand
|
|
186
|
+
safe_revision: f4f7cb0803ea34a2f1ba83495d8bcbd942786bce
|
|
179
187
|
ndr_support.gemspec:
|
|
180
|
-
comments:
|
|
181
|
-
reviewed_by:
|
|
182
|
-
safe_revision:
|
|
188
|
+
comments:
|
|
189
|
+
reviewed_by: brian.shand
|
|
190
|
+
safe_revision: e91fab5ac8474b001ca3805c6cce8eefa6b49f2d
|
|
183
191
|
test/array_test.rb:
|
|
184
|
-
comments:
|
|
192
|
+
comments:
|
|
185
193
|
reviewed_by: timgentry
|
|
186
194
|
safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
|
|
187
195
|
test/concerns/working_days_test.rb:
|
|
188
|
-
comments:
|
|
196
|
+
comments:
|
|
189
197
|
reviewed_by: josh.pencheon
|
|
190
198
|
safe_revision: fe6c3beff445e3c84ed0c89f08e1ab10bfb00587
|
|
191
199
|
test/daterange_test.rb:
|
|
192
|
-
comments:
|
|
200
|
+
comments:
|
|
193
201
|
reviewed_by: ollietulloch
|
|
194
202
|
safe_revision: ccca1dc67e3742efb154e01e01243e7b38180936
|
|
195
203
|
test/hash_test.rb:
|
|
196
|
-
comments:
|
|
204
|
+
comments:
|
|
197
205
|
reviewed_by: timgentry
|
|
198
206
|
safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
|
|
199
207
|
test/integer/calculations_test.rb:
|
|
200
|
-
comments:
|
|
208
|
+
comments:
|
|
201
209
|
reviewed_by: josh.pencheon
|
|
202
210
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
|
203
211
|
test/integer/rounding_test.rb:
|
|
204
|
-
comments:
|
|
212
|
+
comments:
|
|
205
213
|
reviewed_by: josh.pencheon
|
|
206
214
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
|
207
215
|
test/integer/working_days_test.rb:
|
|
208
|
-
comments:
|
|
216
|
+
comments:
|
|
209
217
|
reviewed_by: josh.pencheon
|
|
210
218
|
safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
|
|
211
219
|
test/nil_test.rb:
|
|
212
|
-
comments:
|
|
220
|
+
comments:
|
|
213
221
|
reviewed_by: timgentry
|
|
214
222
|
safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
|
|
215
223
|
test/obfuscator_test.rb:
|
|
216
|
-
comments:
|
|
224
|
+
comments:
|
|
217
225
|
reviewed_by: brian.shand
|
|
218
226
|
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
|
219
227
|
test/ourdate_test.rb:
|
|
220
|
-
comments:
|
|
228
|
+
comments:
|
|
221
229
|
reviewed_by: josh.pencheon
|
|
222
230
|
safe_revision: 7c32f5a80c1fb7aaf6e850d4b0651a7b47640e15
|
|
223
231
|
test/ourtime_test.rb:
|
|
224
|
-
comments:
|
|
232
|
+
comments:
|
|
225
233
|
reviewed_by: brian.shand
|
|
226
234
|
safe_revision: b9bc1e18464a27f84e69ebea083dd6a8d351c8cb
|
|
227
235
|
test/password_test.rb:
|
|
@@ -229,50 +237,50 @@ file safety:
|
|
|
229
237
|
reviewed_by: josh.pencheon
|
|
230
238
|
safe_revision: f5d1ba50d378286c0541f300d73844240e2eb7c1
|
|
231
239
|
test/regexp_range_test.rb:
|
|
232
|
-
comments:
|
|
233
|
-
reviewed_by:
|
|
234
|
-
safe_revision:
|
|
240
|
+
comments:
|
|
241
|
+
reviewed_by: brian.shand
|
|
242
|
+
safe_revision: f4f7cb0803ea34a2f1ba83495d8bcbd942786bce
|
|
235
243
|
test/resources/filesystem_paths.yml:
|
|
236
|
-
comments:
|
|
244
|
+
comments:
|
|
237
245
|
reviewed_by: timgentry
|
|
238
246
|
safe_revision: 81061f85ccdf8933adc7f104d7eeaef1e2d71e26
|
|
239
247
|
test/safe_file_test.rb:
|
|
240
|
-
comments:
|
|
248
|
+
comments:
|
|
241
249
|
reviewed_by: josh.pencheon
|
|
242
250
|
safe_revision: 24ba08d3a8f4b284678244aaffa2aaa347256900
|
|
243
251
|
test/safe_path_test.rb:
|
|
244
|
-
comments:
|
|
252
|
+
comments:
|
|
245
253
|
reviewed_by: timgentry
|
|
246
254
|
safe_revision: b562d0c15ff1b1d565522a47e6bae47ea09706f0
|
|
247
255
|
test/string/cleaning_test.rb:
|
|
248
|
-
comments:
|
|
256
|
+
comments:
|
|
249
257
|
reviewed_by: brianshand
|
|
250
258
|
safe_revision: b7b033ad9773cc9037c408a7763b113d31cbf191
|
|
251
259
|
test/string/conversions_test.rb:
|
|
252
|
-
comments:
|
|
260
|
+
comments:
|
|
253
261
|
reviewed_by: ollietulloch
|
|
254
262
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
|
255
263
|
test/test_helper.rb:
|
|
256
|
-
comments:
|
|
264
|
+
comments:
|
|
257
265
|
reviewed_by: josh.pencheon
|
|
258
266
|
safe_revision: 34ae80f2952f0bfd18688541862774cbaaa6c5f5
|
|
259
267
|
test/threat_scanner_test.rb:
|
|
260
|
-
comments:
|
|
268
|
+
comments:
|
|
261
269
|
reviewed_by: ollietulloch
|
|
262
270
|
safe_revision: fbb6ef9804040aa2e38257d9f5c487bde18a490d
|
|
263
271
|
test/utf8_encoding/control_characters_test.rb:
|
|
264
|
-
comments:
|
|
272
|
+
comments:
|
|
265
273
|
reviewed_by: timgentry
|
|
266
274
|
safe_revision: d210b982841611381a0df02d8f2db9c13e41e42f
|
|
267
275
|
test/utf8_encoding/force_binary_test.rb:
|
|
268
|
-
comments:
|
|
276
|
+
comments:
|
|
269
277
|
reviewed_by: timgentry
|
|
270
278
|
safe_revision: 29595e6431587ff9b7db6e3ad3abbb3577bff99c
|
|
271
279
|
test/utf8_encoding_test.rb:
|
|
272
|
-
comments:
|
|
280
|
+
comments:
|
|
273
281
|
reviewed_by: timgentry
|
|
274
282
|
safe_revision: 2a5d30674dc9dde336e1dbbbf3c8a98905647432
|
|
275
283
|
test/yaml/serialization_test.rb:
|
|
276
|
-
comments:
|
|
277
|
-
reviewed_by:
|
|
278
|
-
safe_revision:
|
|
284
|
+
comments:
|
|
285
|
+
reviewed_by: brian.shand
|
|
286
|
+
safe_revision: f4f7cb0803ea34a2f1ba83495d8bcbd942786bce
|
data/gemfiles/Gemfile.rails60
CHANGED
|
@@ -64,13 +64,12 @@ class SafePath
|
|
|
64
64
|
# should be used. Attempting to reconfigure with
|
|
65
65
|
# new settings will raise a security error.
|
|
66
66
|
def self.configure!(filepath)
|
|
67
|
-
if defined?(@@fs_paths)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
end
|
|
67
|
+
raise SecurityError, 'Attempt to re-assign SafePath config!' if defined?(@@fs_paths)
|
|
68
|
+
|
|
69
|
+
File.open(filepath, 'r') do |file|
|
|
70
|
+
@@fs_paths = YAML.safe_load(ERB.new(file.read).result,
|
|
71
|
+
permitted_classes: [Regexp], aliases: true)
|
|
72
|
+
@@fs_paths.freeze
|
|
74
73
|
end
|
|
75
74
|
end
|
|
76
75
|
|
data/lib/ndr_support/version.rb
CHANGED
|
@@ -8,6 +8,10 @@ module NdrSupport
|
|
|
8
8
|
module SerializationMigration
|
|
9
9
|
include UTF8Encoding
|
|
10
10
|
|
|
11
|
+
# Classes we routinely allow to be included in our YAML serialisations, automatically
|
|
12
|
+
# accepted by load_yaml
|
|
13
|
+
YAML_SAFE_CLASSES = [Date, DateTime, Time, Symbol].freeze
|
|
14
|
+
|
|
11
15
|
# Wrapper around: YAML.load(string)
|
|
12
16
|
def load_yaml(string, coerce_invalid_chars = false)
|
|
13
17
|
fix_encoding!(string, coerce_invalid_chars)
|
|
@@ -16,7 +20,12 @@ module NdrSupport
|
|
|
16
20
|
handle_special_characters!(string, coerce_invalid_chars)
|
|
17
21
|
fix_encoding!(string, coerce_invalid_chars)
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
# TODO: Bump NdrSupport major version, and switch to safe_load by default
|
|
24
|
+
object = if Psych::VERSION.start_with?('3.')
|
|
25
|
+
Psych.load(string)
|
|
26
|
+
else
|
|
27
|
+
Psych.safe_load(string, permitted_classes: YAML_SAFE_CLASSES)
|
|
28
|
+
end
|
|
20
29
|
|
|
21
30
|
# Ensure that any string related to the object
|
|
22
31
|
# we've loaded is also valid UTF-8.
|
data/ndr_support.gemspec
CHANGED
|
@@ -24,15 +24,15 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.add_development_dependency 'bundler'
|
|
25
25
|
spec.add_development_dependency 'rake', '>= 12.3.3'
|
|
26
26
|
|
|
27
|
-
spec.required_ruby_version = '>= 2.
|
|
27
|
+
spec.required_ruby_version = '>= 2.7'
|
|
28
28
|
|
|
29
29
|
# Avoid std-lib minitest (which has different namespace)
|
|
30
30
|
spec.add_development_dependency 'minitest', '>= 5.0.0'
|
|
31
31
|
spec.add_development_dependency 'mocha', '~> 1.1'
|
|
32
32
|
|
|
33
|
-
spec.add_development_dependency 'ndr_dev_support', '~>
|
|
33
|
+
spec.add_development_dependency 'ndr_dev_support', '~> 6.0.2'
|
|
34
|
+
|
|
34
35
|
spec.add_development_dependency 'guard'
|
|
35
|
-
spec.add_development_dependency 'listen', '< 3.1' # Bundle 1.12 should be (but isn't) resolving Ruby 2.1 issue
|
|
36
36
|
spec.add_development_dependency 'guard-rubocop'
|
|
37
37
|
spec.add_development_dependency 'guard-shell'
|
|
38
38
|
spec.add_development_dependency 'guard-minitest'
|
data/test/regexp_range_test.rb
CHANGED
|
@@ -16,7 +16,8 @@ class RegexpRangeTest < Minitest::Test
|
|
|
16
16
|
regexp_range = RegexpRange.new(0, /^3Ut/)
|
|
17
17
|
|
|
18
18
|
# Don't test YAML serialisation directly, but make it can be loaded:
|
|
19
|
-
deserialized_regexp_range = YAML.
|
|
19
|
+
deserialized_regexp_range = YAML.safe_load(regexp_range.to_yaml,
|
|
20
|
+
permitted_classes: [RegexpRange, Regexp])
|
|
20
21
|
assert_instance_of RegexpRange, deserialized_regexp_range
|
|
21
22
|
assert_equal regexp_range.begin, deserialized_regexp_range.begin
|
|
22
23
|
assert_equal regexp_range.end, deserialized_regexp_range.end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
|
|
3
1
|
require 'test_helper'
|
|
4
2
|
|
|
5
3
|
class SerializationTest < Minitest::Test
|
|
@@ -70,7 +68,7 @@ class SerializationTest < Minitest::Test
|
|
|
70
68
|
|
|
71
69
|
def assert_times
|
|
72
70
|
# Dumped by 1.9.3 syck, within era.
|
|
73
|
-
loaded = YAML.
|
|
71
|
+
loaded = YAML.safe_load("--- !timestamp 2014-03-01\n", permitted_classes: YAML_SAFE_CLASSES)
|
|
74
72
|
assert [Date, Time].include?(loaded.class), '1.9.3 era timestamp class'
|
|
75
73
|
assert_equal 2014, loaded.year, '1.9.3 era timestamp year'
|
|
76
74
|
assert_equal 3, loaded.month, '1.9.3 era timestamp month'
|
|
@@ -81,17 +79,17 @@ class SerializationTest < Minitest::Test
|
|
|
81
79
|
date = Date.new(2014, 3, 1)
|
|
82
80
|
|
|
83
81
|
# Dumped by 1.8.7 syck, within era.
|
|
84
|
-
loaded = YAML.
|
|
82
|
+
loaded = YAML.safe_load("--- 2014-03-01\n", permitted_classes: YAML_SAFE_CLASSES)
|
|
85
83
|
assert_equal date, loaded, '1.8.7 era date'
|
|
86
84
|
|
|
87
85
|
# Check default formatting does not affect serialisation:
|
|
88
86
|
assert_equal '01.03.2014', date.to_s
|
|
89
|
-
assert_equal date, YAML.
|
|
87
|
+
assert_equal date, YAML.safe_load(date.to_yaml, permitted_classes: YAML_SAFE_CLASSES)
|
|
90
88
|
end
|
|
91
89
|
|
|
92
90
|
def assert_datetimes
|
|
93
91
|
datetime = DateTime.new(2014, 3, 1, 12, 45, 15)
|
|
94
|
-
loaded = YAML.
|
|
92
|
+
loaded = YAML.safe_load(datetime.to_yaml, permitted_classes: YAML_SAFE_CLASSES)
|
|
95
93
|
|
|
96
94
|
assert [DateTime, Time].include?(loaded.class), 'datetime class'
|
|
97
95
|
assert_equal datetime, loaded.to_datetime
|
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.
|
|
4
|
+
version: 5.9.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:
|
|
11
|
+
date: 2022-04-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -112,20 +112,14 @@ dependencies:
|
|
|
112
112
|
requirements:
|
|
113
113
|
- - "~>"
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
|
-
version:
|
|
116
|
-
- - ">="
|
|
117
|
-
- !ruby/object:Gem::Version
|
|
118
|
-
version: 5.4.5
|
|
115
|
+
version: 6.0.2
|
|
119
116
|
type: :development
|
|
120
117
|
prerelease: false
|
|
121
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
119
|
requirements:
|
|
123
120
|
- - "~>"
|
|
124
121
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
126
|
-
- - ">="
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
version: 5.4.5
|
|
122
|
+
version: 6.0.2
|
|
129
123
|
- !ruby/object:Gem::Dependency
|
|
130
124
|
name: guard
|
|
131
125
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -140,20 +134,6 @@ dependencies:
|
|
|
140
134
|
- - ">="
|
|
141
135
|
- !ruby/object:Gem::Version
|
|
142
136
|
version: '0'
|
|
143
|
-
- !ruby/object:Gem::Dependency
|
|
144
|
-
name: listen
|
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
|
146
|
-
requirements:
|
|
147
|
-
- - "<"
|
|
148
|
-
- !ruby/object:Gem::Version
|
|
149
|
-
version: '3.1'
|
|
150
|
-
type: :development
|
|
151
|
-
prerelease: false
|
|
152
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
requirements:
|
|
154
|
-
- - "<"
|
|
155
|
-
- !ruby/object:Gem::Version
|
|
156
|
-
version: '3.1'
|
|
157
137
|
- !ruby/object:Gem::Dependency
|
|
158
138
|
name: guard-rubocop
|
|
159
139
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -242,6 +222,8 @@ files:
|
|
|
242
222
|
- code_safety.yml
|
|
243
223
|
- gemfiles/Gemfile.rails52
|
|
244
224
|
- gemfiles/Gemfile.rails60
|
|
225
|
+
- gemfiles/Gemfile.rails61
|
|
226
|
+
- gemfiles/Gemfile.rails70
|
|
245
227
|
- lib/ndr_support.rb
|
|
246
228
|
- lib/ndr_support/array.rb
|
|
247
229
|
- lib/ndr_support/concerns/working_days.rb
|
|
@@ -309,7 +291,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
309
291
|
requirements:
|
|
310
292
|
- - ">="
|
|
311
293
|
- !ruby/object:Gem::Version
|
|
312
|
-
version: 2.
|
|
294
|
+
version: '2.7'
|
|
313
295
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
314
296
|
requirements:
|
|
315
297
|
- - ">="
|