nokodiff 1.0.0.rc1 → 1.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 +4 -4
- data/app/assets/stylesheets/nokodiff.scss +206 -54
- data/lib/nokodiff/changes_in_fragments.rb +4 -4
- data/lib/nokodiff/differ.rb +1 -1
- data/lib/nokodiff/formatting_helpers.rb +11 -1
- data/lib/nokodiff/text_node_diffs.rb +16 -1
- data/lib/nokodiff/version.rb +1 -1
- metadata +17 -105
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9b38060ba01f5d6e38c752d5b3736072cfb7ddb867b3f9ab85292ef731946695
|
|
4
|
+
data.tar.gz: 333e94464a25ee00c03c00c54210ef1a5c07f52804d1e8299a84cd20338c5a22
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e1fd5d24c4c18f1d61b3f12afe10a1358a15b5504c2dd6ce1d28baadc37d156826b2dc45c309722c933691f4ae2f1a4e019dbdc4396dfece72e590772fbf5084
|
|
7
|
+
data.tar.gz: f962ce7effdf2bb103fe28c07c936fd8694e6edbb4e72059d0c46671887513bfcaf2d6ee31109446014dc7841332e34ba255b263c3712280e5cb75eaf711d401
|
|
@@ -9,30 +9,26 @@ $comparison-sidebar-width: 40px;
|
|
|
9
9
|
$comparison-sidebar-padding: 15px;
|
|
10
10
|
$comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padding;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
position:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// Prevent users from selecting or copying visually-hidden text. This prevents
|
|
33
|
-
// a user unintentionally copying more text than they intended and needing to
|
|
34
|
-
// manually trim it down again.
|
|
35
|
-
user-select: none !important;
|
|
12
|
+
@mixin diff-block {
|
|
13
|
+
position: relative;
|
|
14
|
+
background: $added-color;
|
|
15
|
+
padding-left: $comparison-sidebar-padding;
|
|
16
|
+
margin-left: -$comparison-sidebar-padding;
|
|
17
|
+
width: calc(100% + $comparison-sidebar-padding);
|
|
18
|
+
|
|
19
|
+
&:before {
|
|
20
|
+
content: " ";
|
|
21
|
+
position: absolute;
|
|
22
|
+
left: -$comparison-sidebar-width;
|
|
23
|
+
width: $comparison-sidebar-width;
|
|
24
|
+
height: 100%;
|
|
25
|
+
font-weight: normal;
|
|
26
|
+
min-height: 1.5em;
|
|
27
|
+
line-height: 1.5em;
|
|
28
|
+
text-align: center;
|
|
29
|
+
z-index: 10;
|
|
30
|
+
background: $diff-marker-added-color;
|
|
31
|
+
}
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
.visually-hidden {
|
|
@@ -59,7 +55,6 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
59
55
|
// a user unintentionally copying more text than they intended and needing to
|
|
60
56
|
// manually trim it down again.
|
|
61
57
|
user-select: none !important;
|
|
62
|
-
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
.compare-editions {
|
|
@@ -95,7 +90,7 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
95
90
|
bottom: 0;
|
|
96
91
|
left: -$comparison-sidebar-padding;
|
|
97
92
|
min-height: 1.5em;
|
|
98
|
-
|
|
93
|
+
right: 0;
|
|
99
94
|
display: block;
|
|
100
95
|
z-index: -1;
|
|
101
96
|
}
|
|
@@ -148,14 +143,23 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
148
143
|
}
|
|
149
144
|
}
|
|
150
145
|
|
|
151
|
-
//
|
|
146
|
+
// Govspeak-specific overrides
|
|
152
147
|
.gem-c-govspeak & {
|
|
153
|
-
&::before { min-height:
|
|
148
|
+
&::before { min-height: 5em; }
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.diff .gem-c-button.govuk-button{
|
|
152
|
+
margin-top: 22px;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.form-download .diff {
|
|
156
|
+
padding-top: 10px;
|
|
157
|
+
padding-bottom: 3px;
|
|
154
158
|
}
|
|
155
159
|
|
|
156
160
|
// Inset/callout elements overrides
|
|
157
161
|
|
|
158
|
-
.address {
|
|
162
|
+
.address, .contact {
|
|
159
163
|
.diff{
|
|
160
164
|
$address-offset: -16px;
|
|
161
165
|
|
|
@@ -171,6 +175,38 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
171
175
|
|
|
172
176
|
.help-notice {
|
|
173
177
|
$help-notice-offset: -45px;
|
|
178
|
+
|
|
179
|
+
&:before {
|
|
180
|
+
display: none;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
p {
|
|
184
|
+
position: relative;
|
|
185
|
+
|
|
186
|
+
&:before {
|
|
187
|
+
content: "!";
|
|
188
|
+
font-weight: 700;
|
|
189
|
+
border-radius: 50%;
|
|
190
|
+
color: var(--govuk-body-background-colour, #ffffff);
|
|
191
|
+
background: var(--govuk-text-colour, #0b0c0c);
|
|
192
|
+
font-size: 30px;
|
|
193
|
+
line-height: 29px;
|
|
194
|
+
text-align: center;
|
|
195
|
+
position: absolute;
|
|
196
|
+
margin-top: -5px;
|
|
197
|
+
left: $help-notice-offset;
|
|
198
|
+
min-width: 35px;
|
|
199
|
+
min-height: 35px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
&:first-child:after {
|
|
203
|
+
content: ".";
|
|
204
|
+
display: block;
|
|
205
|
+
clear: both;
|
|
206
|
+
visibility: hidden;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
174
210
|
.diff {
|
|
175
211
|
&::after, &::before {
|
|
176
212
|
top: -15px;
|
|
@@ -179,8 +215,6 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
179
215
|
}
|
|
180
216
|
|
|
181
217
|
&::before {
|
|
182
|
-
top: -15px;
|
|
183
|
-
min-height: calc(1.5em + 30px);
|
|
184
218
|
left: -$comparison-sidebar-offset + $help-notice-offset;
|
|
185
219
|
}
|
|
186
220
|
}
|
|
@@ -228,6 +262,15 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
228
262
|
$govuk-list-offset: -20px;
|
|
229
263
|
|
|
230
264
|
.gem-c-govspeak & {
|
|
265
|
+
ul.list-no-bullets {
|
|
266
|
+
list-style: none;
|
|
267
|
+
padding-left: 0;
|
|
268
|
+
|
|
269
|
+
span.diff:before {
|
|
270
|
+
left: -$comparison-sidebar-width - $comparison-sidebar-padding;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
231
274
|
ul li span.diff, ul span.diff {
|
|
232
275
|
&::after {
|
|
233
276
|
left: -$comparison-sidebar-padding + $govuk-list-offset;
|
|
@@ -241,11 +284,6 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
241
284
|
ol li span.diff {
|
|
242
285
|
list-style-type: decimal;
|
|
243
286
|
|
|
244
|
-
&::marker {
|
|
245
|
-
background-color: #0b0c0c;
|
|
246
|
-
border-radius: 50%;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
287
|
&::after {
|
|
250
288
|
left: $comparison-sidebar-padding;
|
|
251
289
|
}
|
|
@@ -255,53 +293,165 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
255
293
|
}
|
|
256
294
|
}
|
|
257
295
|
|
|
296
|
+
ol:not(.steps) span.diff {
|
|
297
|
+
&::before {
|
|
298
|
+
left: -75px;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
&::after {
|
|
302
|
+
left: -75px;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Deal with the number values of ordered lists (including steps)
|
|
307
|
+
// by changing the increment value depending on sequence of diffs
|
|
308
|
+
ol {
|
|
309
|
+
counter-reset: item 0;
|
|
310
|
+
list-style: none;
|
|
311
|
+
margin-left: 20px;
|
|
312
|
+
|
|
313
|
+
li {
|
|
314
|
+
position: relative;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
li:before {
|
|
318
|
+
position: absolute;
|
|
319
|
+
left: -20px;
|
|
320
|
+
counter-increment: item 1;
|
|
321
|
+
content: counter(item);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Over-ride style for <li> elements inside a span.diff
|
|
325
|
+
// Ideally the markup would be changed so this is not needed
|
|
326
|
+
&.steps > span.diff > li:before {
|
|
327
|
+
left: 0;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
li:has(.diff) + li:not(:has(.diff)),
|
|
331
|
+
li:not(:has(.diff)) + li:has(.diff),
|
|
332
|
+
li:not(:has(.diff)) + li:not(:has(.diff)) {
|
|
333
|
+
&:before {
|
|
334
|
+
counter-increment: item 1;
|
|
335
|
+
content: counter(item);
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
li:has(.del) + li:has(.ins) {
|
|
340
|
+
&:before {
|
|
341
|
+
counter-increment: item 0;
|
|
342
|
+
content: counter(item);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
// This is required to over-ride the visually-hidden element
|
|
347
|
+
// that is otherwise assigned the first counter
|
|
348
|
+
// when a new set of steps are added
|
|
349
|
+
& > span.steps > span + li:before {
|
|
350
|
+
content: "1";
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
258
354
|
//govuk "steps"-style ol overrides
|
|
259
355
|
$steps-list-offset: -48px;
|
|
260
356
|
|
|
261
357
|
ol.steps {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
358
|
+
@extend .steps;
|
|
359
|
+
|
|
360
|
+
&:has(>span.diff) {
|
|
361
|
+
@include diff-block;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
margin-left: -$comparison-sidebar-padding;
|
|
365
|
+
width: calc(100% + $comparison-sidebar-padding);
|
|
366
|
+
|
|
367
|
+
li {
|
|
368
|
+
position: relative;
|
|
369
|
+
margin-top: 0.75em;
|
|
370
|
+
margin-bottom: 0.75em;
|
|
371
|
+
padding-top: 0;
|
|
372
|
+
padding-bottom: 0;
|
|
373
|
+
|
|
374
|
+
& > p {
|
|
375
|
+
margin-left: $comparison-sidebar-padding;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
&:has(.del) {
|
|
379
|
+
background: $removed-color;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
&:has(.ins) {
|
|
383
|
+
background: $added-color;
|
|
384
|
+
}
|
|
267
385
|
|
|
268
386
|
&::before {
|
|
269
|
-
|
|
387
|
+
top: 0;
|
|
388
|
+
margin-left: $comparison-sidebar-padding;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
& > span {
|
|
392
|
+
margin-left: $comparison-sidebar-padding;
|
|
393
|
+
|
|
394
|
+
p {
|
|
395
|
+
margin-bottom: 0;
|
|
396
|
+
}
|
|
270
397
|
}
|
|
271
|
-
&::after { left: -$comparison-sidebar-padding + $steps-list-offset !important; }
|
|
272
|
-
&::marker { content: "#."; }
|
|
273
398
|
}
|
|
274
399
|
|
|
275
400
|
li span.diff {
|
|
276
|
-
|
|
401
|
+
margin-bottom: 0;
|
|
402
|
+
|
|
277
403
|
&::before {
|
|
278
|
-
top: -2px;
|
|
279
404
|
left: -$comparison-sidebar-offset + $steps-list-offset;
|
|
280
405
|
height: 100%;
|
|
281
406
|
width: $comparison-sidebar-width;
|
|
282
|
-
min-height: 1.6em;
|
|
283
|
-
}
|
|
284
|
-
&::after {
|
|
285
|
-
top: -2px;
|
|
286
|
-
left: -$comparison-sidebar-padding + $steps-list-offset;
|
|
287
|
-
min-height: 1.6em;
|
|
407
|
+
min-height: auto; // 1.6em;
|
|
288
408
|
}
|
|
289
409
|
}
|
|
290
410
|
}
|
|
291
411
|
}
|
|
292
412
|
|
|
293
413
|
// Table-specific overrides
|
|
294
|
-
|
|
414
|
+
$table-row-offset: -2px;
|
|
295
415
|
|
|
296
416
|
table {
|
|
297
417
|
overflow-x: visible;
|
|
298
418
|
}
|
|
299
419
|
|
|
420
|
+
// This element is generated before new tables
|
|
421
|
+
// We need to remove it from the display and
|
|
422
|
+
// style the table that follows it as a new element
|
|
423
|
+
& > span.diff.ins {
|
|
424
|
+
display: none;
|
|
425
|
+
|
|
426
|
+
& + table {
|
|
427
|
+
@include diff-block;
|
|
428
|
+
|
|
429
|
+
&:before {
|
|
430
|
+
content: "+";
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
& > span.diff.del {
|
|
436
|
+
display: none;
|
|
437
|
+
|
|
438
|
+
& + table {
|
|
439
|
+
@include diff-block;
|
|
440
|
+
|
|
441
|
+
&:before {
|
|
442
|
+
content: "−";
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
|
|
300
447
|
tr.diff {
|
|
301
448
|
position: static;
|
|
302
|
-
display: table-row;
|
|
303
449
|
transform: scale(1);
|
|
304
450
|
|
|
451
|
+
&.del, &.ins {
|
|
452
|
+
display: table-row;
|
|
453
|
+
}
|
|
454
|
+
|
|
305
455
|
&.del::after, &.ins::after {
|
|
306
456
|
left: -$comparison-sidebar-padding + $table-row-offset;
|
|
307
457
|
// Need to account for border in row element
|
|
@@ -331,12 +481,14 @@ $comparison-sidebar-offset: $comparison-sidebar-width + $comparison-sidebar-padd
|
|
|
331
481
|
color: $text-colour;
|
|
332
482
|
background-color: $diff-marker-removed-color;
|
|
333
483
|
content: "−";
|
|
484
|
+
font-weight: normal;
|
|
334
485
|
}
|
|
335
486
|
|
|
336
487
|
&.ins td:first-child::before, &.ins th:first-child::before {
|
|
337
488
|
color: $text-colour;
|
|
338
489
|
background-color: $diff-marker-added-color;
|
|
339
490
|
content: "+";
|
|
491
|
+
font-weight: normal;
|
|
340
492
|
}
|
|
341
493
|
}
|
|
342
494
|
}
|
|
@@ -43,18 +43,18 @@ module Nokodiff
|
|
|
43
43
|
append_accumulated_text(before_fragment, accumulated_before_text)
|
|
44
44
|
append_accumulated_text(after_fragment, accumulated_after_text)
|
|
45
45
|
|
|
46
|
-
before_fragment.add_child(
|
|
47
|
-
after_fragment.add_child(
|
|
46
|
+
before_fragment.add_child(wrap_character_as_change(change.old_element, before_fragment))
|
|
47
|
+
after_fragment.add_child(wrap_character_as_change(change.new_element, after_fragment))
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def emphasise_deletion(change)
|
|
51
51
|
append_accumulated_text(before_fragment, accumulated_before_text)
|
|
52
|
-
before_fragment.add_child(
|
|
52
|
+
before_fragment.add_child(wrap_character_as_change(change.old_element, before_fragment))
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def emphasise_addition(change)
|
|
56
56
|
append_accumulated_text(after_fragment, accumulated_after_text)
|
|
57
|
-
after_fragment.add_child(
|
|
57
|
+
after_fragment.add_child(wrap_character_as_change(change.new_element, after_fragment))
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def append_accumulated_text(fragment, accumulated_text)
|
data/lib/nokodiff/differ.rb
CHANGED
|
@@ -135,7 +135,7 @@ module Nokodiff
|
|
|
135
135
|
node.children.each_cons(2) do |left, right|
|
|
136
136
|
next unless node_is_a_change?(left) && node_is_a_change?(right)
|
|
137
137
|
|
|
138
|
-
left.
|
|
138
|
+
left.children += right.children
|
|
139
139
|
right.remove
|
|
140
140
|
|
|
141
141
|
merge_adjacent_highlighted_changes(node)
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
module Nokodiff
|
|
2
2
|
module FormattingHelpers
|
|
3
|
-
def
|
|
3
|
+
def wrap_character_as_change(char, fragment)
|
|
4
4
|
Nokogiri::XML::Node.new("span", fragment.document).tap do |n|
|
|
5
5
|
n.content = char
|
|
6
6
|
n["class"] = "diff-marker"
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
def wrap_node_as_change(node)
|
|
11
|
+
return unless node
|
|
12
|
+
|
|
13
|
+
wrapper = Nokogiri::XML::Node.new("span", node.document)
|
|
14
|
+
wrapper["class"] = "diff-marker"
|
|
15
|
+
|
|
16
|
+
node.replace(wrapper)
|
|
17
|
+
wrapper.add_child(node)
|
|
18
|
+
end
|
|
19
|
+
|
|
10
20
|
def insert_table_row_change_marker(element, message)
|
|
11
21
|
marker = Nokogiri::XML::Node.new("span", element.document)
|
|
12
22
|
marker.content = "#{message} "
|
|
@@ -16,8 +16,10 @@ module Nokodiff
|
|
|
16
16
|
attr_accessor :before_fragment, :after_fragment
|
|
17
17
|
|
|
18
18
|
def diff_text_nodes(before_node, after_node)
|
|
19
|
-
if before_node
|
|
19
|
+
if !contains_another_element?(before_node) && !contains_another_element?(after_node)
|
|
20
20
|
diff_text_node_content(before_node, after_node)
|
|
21
|
+
elsif mixed_text_and_element_nodes(before_node, after_node)
|
|
22
|
+
mark_nodes_as_changed(before_node, after_node)
|
|
21
23
|
elsif before_node&.element? || after_node&.element?
|
|
22
24
|
before_children = before_node ? before_node.children.to_a : []
|
|
23
25
|
after_children = after_node ? after_node.children.to_a : []
|
|
@@ -30,6 +32,19 @@ module Nokodiff
|
|
|
30
32
|
end
|
|
31
33
|
end
|
|
32
34
|
|
|
35
|
+
def contains_another_element?(node)
|
|
36
|
+
node && !node.text?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def mixed_text_and_element_nodes(before_node, after_node)
|
|
40
|
+
(before_node&.text? && after_node&.element?) || (before_node&.element? && after_node&.text?)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def mark_nodes_as_changed(before_node, after_node)
|
|
44
|
+
wrap_node_as_change(before_node)
|
|
45
|
+
wrap_node_as_change(after_node)
|
|
46
|
+
end
|
|
47
|
+
|
|
33
48
|
def diff_text_node_content(before_text_node, after_text_node)
|
|
34
49
|
before_chars = get_chars(before_text_node)
|
|
35
50
|
after_chars = get_chars(after_text_node)
|
data/lib/nokodiff/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nokodiff
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.0
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GOV.UK Dev
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: byebug
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: rake
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -93,40 +107,6 @@ dependencies:
|
|
|
93
107
|
- - ">="
|
|
94
108
|
- !ruby/object:Gem::Version
|
|
95
109
|
version: '0'
|
|
96
|
-
- !ruby/object:Gem::Dependency
|
|
97
|
-
name: actionview
|
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - ">="
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '6'
|
|
103
|
-
- - "<"
|
|
104
|
-
- !ruby/object:Gem::Version
|
|
105
|
-
version: 8.1.4
|
|
106
|
-
type: :runtime
|
|
107
|
-
prerelease: false
|
|
108
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
109
|
-
requirements:
|
|
110
|
-
- - ">="
|
|
111
|
-
- !ruby/object:Gem::Version
|
|
112
|
-
version: '6'
|
|
113
|
-
- - "<"
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: 8.1.4
|
|
116
|
-
- !ruby/object:Gem::Dependency
|
|
117
|
-
name: byebug
|
|
118
|
-
requirement: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - ">="
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: '0'
|
|
123
|
-
type: :runtime
|
|
124
|
-
prerelease: false
|
|
125
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
126
|
-
requirements:
|
|
127
|
-
- - ">="
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: '0'
|
|
130
110
|
- !ruby/object:Gem::Dependency
|
|
131
111
|
name: diff-lcs
|
|
132
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -141,74 +121,6 @@ dependencies:
|
|
|
141
121
|
- - ">="
|
|
142
122
|
- !ruby/object:Gem::Version
|
|
143
123
|
version: '0'
|
|
144
|
-
- !ruby/object:Gem::Dependency
|
|
145
|
-
name: gds-api-adapters
|
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
|
147
|
-
requirements:
|
|
148
|
-
- - ">="
|
|
149
|
-
- !ruby/object:Gem::Version
|
|
150
|
-
version: '101.0'
|
|
151
|
-
- - "<"
|
|
152
|
-
- !ruby/object:Gem::Version
|
|
153
|
-
version: '103.4'
|
|
154
|
-
type: :runtime
|
|
155
|
-
prerelease: false
|
|
156
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
157
|
-
requirements:
|
|
158
|
-
- - ">="
|
|
159
|
-
- !ruby/object:Gem::Version
|
|
160
|
-
version: '101.0'
|
|
161
|
-
- - "<"
|
|
162
|
-
- !ruby/object:Gem::Version
|
|
163
|
-
version: '103.4'
|
|
164
|
-
- !ruby/object:Gem::Dependency
|
|
165
|
-
name: govspeak
|
|
166
|
-
requirement: !ruby/object:Gem::Requirement
|
|
167
|
-
requirements:
|
|
168
|
-
- - ">="
|
|
169
|
-
- !ruby/object:Gem::Version
|
|
170
|
-
version: 10.6.3
|
|
171
|
-
type: :runtime
|
|
172
|
-
prerelease: false
|
|
173
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
174
|
-
requirements:
|
|
175
|
-
- - ">="
|
|
176
|
-
- !ruby/object:Gem::Version
|
|
177
|
-
version: 10.6.3
|
|
178
|
-
- !ruby/object:Gem::Dependency
|
|
179
|
-
name: rails
|
|
180
|
-
requirement: !ruby/object:Gem::Requirement
|
|
181
|
-
requirements:
|
|
182
|
-
- - ">="
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
version: '6'
|
|
185
|
-
- - "<"
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: 8.1.4
|
|
188
|
-
type: :runtime
|
|
189
|
-
prerelease: false
|
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
-
requirements:
|
|
192
|
-
- - ">="
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: '6'
|
|
195
|
-
- - "<"
|
|
196
|
-
- !ruby/object:Gem::Version
|
|
197
|
-
version: 8.1.4
|
|
198
|
-
- !ruby/object:Gem::Dependency
|
|
199
|
-
name: view_component
|
|
200
|
-
requirement: !ruby/object:Gem::Requirement
|
|
201
|
-
requirements:
|
|
202
|
-
- - "~>"
|
|
203
|
-
- !ruby/object:Gem::Version
|
|
204
|
-
version: '4'
|
|
205
|
-
type: :runtime
|
|
206
|
-
prerelease: false
|
|
207
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
208
|
-
requirements:
|
|
209
|
-
- - "~>"
|
|
210
|
-
- !ruby/object:Gem::Version
|
|
211
|
-
version: '4'
|
|
212
124
|
email:
|
|
213
125
|
- govuk-dev@digital.cabinet-office.gov.uk
|
|
214
126
|
executables: []
|
|
@@ -237,14 +149,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
237
149
|
requirements:
|
|
238
150
|
- - ">="
|
|
239
151
|
- !ruby/object:Gem::Version
|
|
240
|
-
version: '3.
|
|
152
|
+
version: '3.3'
|
|
241
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
154
|
requirements:
|
|
243
155
|
- - ">="
|
|
244
156
|
- !ruby/object:Gem::Version
|
|
245
157
|
version: '0'
|
|
246
158
|
requirements: []
|
|
247
|
-
rubygems_version: 4.0.
|
|
159
|
+
rubygems_version: 4.0.21
|
|
248
160
|
specification_version: 4
|
|
249
161
|
summary: A Ruby Gem to highlight additions, deletions and character level changes
|
|
250
162
|
while preserving original HTML
|