slaw 5.0.0 → 6.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.
@@ -7,714 +7,6 @@ describe Slaw::Parse::Builder do
7
7
  let(:parser) { double("parser") }
8
8
  subject { Slaw::Parse::Builder.new(parser: parser) }
9
9
 
10
- describe '#adjust_blocklists' do
11
- it 'should nest simple blocks' do
12
- doc = xml2doc(subsection(<<XML
13
- <blockList id="section-10.1.lst0" renest="true">
14
- <item id="section-10.1.lst0.a">
15
- <num>(a)</num>
16
- <p>foo</p>
17
- </item>
18
- <item id="section-10.1.lst0.i">
19
- <num>(i)</num>
20
- <p>item-i</p>
21
- </item>
22
- <item id="section-10.1.lst0.ii">
23
- <num>(ii)</num>
24
- <p>item-ii</p>
25
- </item>
26
- <item id="section-10.1.lst0.iii">
27
- <num>(iii)</num>
28
- <p>item-iii</p>
29
- </item>
30
- <item id="section-10.1.lst0.aa">
31
- <num>(aa)</num>
32
- <p>item-aa</p>
33
- </item>
34
- <item id="section-10.1.lst0.bb">
35
- <num>(bb)</num>
36
- <p>item-bb</p>
37
- </item>
38
- </blockList>
39
- XML
40
- ))
41
-
42
- subject.adjust_blocklists(doc)
43
- doc.to_s.should == subsection(<<XML
44
- <blockList id="section-10.1.lst0">
45
- <item id="section-10.1.lst0.a">
46
- <num>(a)</num>
47
- <blockList id="section-10.1.lst0.a.list0">
48
- <listIntroduction>foo</listIntroduction>
49
- <item id="section-10.1.lst0.a.list0.i">
50
- <num>(i)</num>
51
- <p>item-i</p>
52
- </item>
53
- <item id="section-10.1.lst0.a.list0.ii">
54
- <num>(ii)</num>
55
- <p>item-ii</p>
56
- </item>
57
- <item id="section-10.1.lst0.a.list0.iii">
58
- <num>(iii)</num>
59
- <blockList id="section-10.1.lst0.a.list0.iii.list0">
60
- <listIntroduction>item-iii</listIntroduction>
61
- <item id="section-10.1.lst0.a.list0.iii.list0.aa">
62
- <num>(aa)</num>
63
- <p>item-aa</p>
64
- </item>
65
- <item id="section-10.1.lst0.a.list0.iii.list0.bb">
66
- <num>(bb)</num>
67
- <p>item-bb</p>
68
- </item>
69
- </blockList>
70
- </item>
71
- </blockList>
72
- </item>
73
- </blockList>
74
- XML
75
- )
76
- end
77
-
78
- # -------------------------------------------------------------------------
79
-
80
- it 'should jump back up a level' do
81
- doc = xml2doc(subsection(<<XML
82
- <blockList id="section-10.1.lst0" renest="true">
83
- <item id="section-10.1.lst0.a">
84
- <num>(a)</num>
85
- <p>foo</p>
86
- </item>
87
- <item id="section-10.1.lst0.i">
88
- <num>(i)</num>
89
- <p>item-i</p>
90
- </item>
91
- <item id="section-10.1.lst0.ii">
92
- <num>(ii)</num>
93
- <p>item-ii</p>
94
- </item>
95
- <item id="section-10.1.lst0.c">
96
- <num>(c)</num>
97
- <p>item-c</p>
98
- </item>
99
- </blockList>
100
- XML
101
- ))
102
-
103
- subject.adjust_blocklists(doc)
104
- doc.to_s.should == subsection(<<XML
105
- <blockList id="section-10.1.lst0">
106
- <item id="section-10.1.lst0.a">
107
- <num>(a)</num>
108
- <blockList id="section-10.1.lst0.a.list0">
109
- <listIntroduction>foo</listIntroduction>
110
- <item id="section-10.1.lst0.a.list0.i">
111
- <num>(i)</num>
112
- <p>item-i</p>
113
- </item>
114
- <item id="section-10.1.lst0.a.list0.ii">
115
- <num>(ii)</num>
116
- <p>item-ii</p>
117
- </item>
118
- </blockList>
119
- </item>
120
- <item id="section-10.1.lst0.c">
121
- <num>(c)</num>
122
- <p>item-c</p>
123
- </item>
124
- </blockList>
125
- XML
126
- )
127
- end
128
-
129
- # -------------------------------------------------------------------------
130
-
131
- it 'should handle (i) correctly' do
132
- doc = xml2doc(subsection(<<XML
133
- <blockList id="section-10.1.lst0" renest="true">
134
- <item id="section-10.1.lst0.h">
135
- <num>(h)</num>
136
- <p>foo</p>
137
- </item>
138
- <item id="section-10.1.lst0.i">
139
- <num>(i)</num>
140
- <p>item-i</p>
141
- </item>
142
- <item id="section-10.1.lst0.j">
143
- <num>(j)</num>
144
- <p>item-ii</p>
145
- </item>
146
- </blockList>
147
- XML
148
- ))
149
-
150
- subject.adjust_blocklists(doc)
151
- doc.to_s.should == subsection(<<XML
152
- <blockList id="section-10.1.lst0">
153
- <item id="section-10.1.lst0.h">
154
- <num>(h)</num>
155
- <p>foo</p>
156
- </item>
157
- <item id="section-10.1.lst0.i">
158
- <num>(i)</num>
159
- <p>item-i</p>
160
- </item>
161
- <item id="section-10.1.lst0.j">
162
- <num>(j)</num>
163
- <p>item-ii</p>
164
- </item>
165
- </blockList>
166
- XML
167
- )
168
- end
169
-
170
- # -------------------------------------------------------------------------
171
-
172
- it 'should handle (u) (v) and (x) correctly' do
173
- doc = xml2doc(subsection(<<XML
174
- <blockList id="section-10.1.lst0" renest="true">
175
- <item id="section-10.1.lst0.t">
176
- <num>(t)</num>
177
- <p>foo</p>
178
- </item>
179
- <item id="section-10.1.lst0.u">
180
- <num>(u)</num>
181
- <p>item-i</p>
182
- </item>
183
- <item id="section-10.1.lst0.v">
184
- <num>(v)</num>
185
- <p>item-ii</p>
186
- </item>
187
- <item id="section-10.1.lst0.w">
188
- <num>(w)</num>
189
- <p>item-ii</p>
190
- </item>
191
- <item id="section-10.1.lst0.x">
192
- <num>(x)</num>
193
- <p>item-ii</p>
194
- </item>
195
- </blockList>
196
- XML
197
- ))
198
-
199
- subject.adjust_blocklists(doc)
200
- doc.to_s.should == subsection(<<XML
201
- <blockList id="section-10.1.lst0">
202
- <item id="section-10.1.lst0.t">
203
- <num>(t)</num>
204
- <p>foo</p>
205
- </item>
206
- <item id="section-10.1.lst0.u">
207
- <num>(u)</num>
208
- <p>item-i</p>
209
- </item>
210
- <item id="section-10.1.lst0.v">
211
- <num>(v)</num>
212
- <p>item-ii</p>
213
- </item>
214
- <item id="section-10.1.lst0.w">
215
- <num>(w)</num>
216
- <p>item-ii</p>
217
- </item>
218
- <item id="section-10.1.lst0.x">
219
- <num>(x)</num>
220
- <p>item-ii</p>
221
- </item>
222
- </blockList>
223
- XML
224
- )
225
- end
226
-
227
-
228
- # -------------------------------------------------------------------------
229
-
230
- it 'should handle (j) correctly' do
231
- doc = xml2doc(subsection(<<XML
232
- <blockList id="section-28.3.list2" renest="true">
233
- <item id="section-28.3.list2.g">
234
- <num>(g)</num>
235
- <p>all <term refersTo="#term-memorial_work" id="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
236
- </item>
237
- <item id="section-28.3.list2.h">
238
- <num>(h)</num>
239
- <p>all the components of <term refersTo="#term-memorial_work" id="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" id="trm383">cemetery</term>;</p>
240
- </item>
241
- <item id="section-28.3.list2.i">
242
- <num>(i)</num>
243
- <p>footstones must consist of one solid piece;</p>
244
- </item>
245
- <item id="section-28.3.list2.j">
246
- <num>(j)</num>
247
- <p>in all cases where <term refersTo="#term-memorial_work" id="trm384">memorial work</term> rests on a base -</p>
248
- </item>
249
- <item id="section-28.3.list2.i">
250
- <num>(i)</num>
251
- <p>such <term refersTo="#term-memorial_work" id="trm385">memorial work</term> must have a foundation;</p>
252
- </item>
253
- <item id="section-28.3.list2.ii">
254
- <num>(ii)</num>
255
- <p>such <term refersTo="#term-memorial_work" id="trm386">memorial work</term> must be set with cement mortar;</p>
256
- </item>
257
- <item id="section-28.3.list2.iii">
258
- <num>(iii)</num>
259
- <p>the bottom base of a single <term refersTo="#term-memorial_work" id="trm387">memorial work</term> must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double <term refersTo="#term-memorial_work" id="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
260
- </item>
261
- </blockList>
262
- XML
263
- ))
264
-
265
- subject.adjust_blocklists(doc)
266
- doc.to_s.should == subsection(<<XML
267
- <blockList id="section-28.3.list2">
268
- <item id="section-28.3.list2.g">
269
- <num>(g)</num>
270
- <p>all <term refersTo="#term-memorial_work" id="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
271
- </item>
272
- <item id="section-28.3.list2.h">
273
- <num>(h)</num>
274
- <p>all the components of <term refersTo="#term-memorial_work" id="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" id="trm383">cemetery</term>;</p>
275
- </item>
276
- <item id="section-28.3.list2.i">
277
- <num>(i)</num>
278
- <p>footstones must consist of one solid piece;</p>
279
- </item>
280
- <item id="section-28.3.list2.j">
281
- <num>(j)</num>
282
- <blockList id="section-28.3.list2.j.list0">
283
- <listIntroduction>in all cases where <term refersTo="#term-memorial_work" id="trm384">memorial work</term> rests on a base -</listIntroduction>
284
- <item id="section-28.3.list2.j.list0.i">
285
- <num>(i)</num>
286
- <p>such <term refersTo="#term-memorial_work" id="trm385">memorial work</term> must have a foundation;</p>
287
- </item>
288
- <item id="section-28.3.list2.j.list0.ii">
289
- <num>(ii)</num>
290
- <p>such <term refersTo="#term-memorial_work" id="trm386">memorial work</term> must be set with cement mortar;</p>
291
- </item>
292
- <item id="section-28.3.list2.j.list0.iii">
293
- <num>(iii)</num>
294
- <p>the bottom base of a single <term refersTo="#term-memorial_work" id="trm387">memorial work</term> must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double <term refersTo="#term-memorial_work" id="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
295
- </item>
296
- </blockList>
297
- </item>
298
- </blockList>
299
- XML
300
- )
301
- end
302
-
303
- # -------------------------------------------------------------------------
304
- it 'should handle (I) correctly' do
305
- doc = xml2doc(subsection(<<XML
306
- <blockList id="section-28.3.list2" renest="true">
307
- <item id="section-28.3.list2.g">
308
- <num>(g)</num>
309
- <p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
310
- </item>
311
- <item id="section-28.3.list2.h">
312
- <num>(h)</num>
313
- <p>all the components of memorial work must be completed before being brought into a cemetery;</p>
314
- </item>
315
- <item id="section-28.3.list2.i">
316
- <num>(i)</num>
317
- <p>item i</p>
318
- </item>
319
- <item id="section-28.3.list2.I">
320
- <num>(I)</num>
321
- <p>a subitem</p>
322
- </item>
323
- <item id="section-28.3.list2.II">
324
- <num>(II)</num>
325
- <p>another subitem</p>
326
- </item>
327
- <item id="section-28.3.list2.j">
328
- <num>(j)</num>
329
- <p>in all cases where memorial work rests on a base -</p>
330
- </item>
331
- <item id="section-28.3.list2.i">
332
- <num>(i)</num>
333
- <p>such memorial work must have a foundation;</p>
334
- </item>
335
- <item id="section-28.3.list2.ii">
336
- <num>(ii)</num>
337
- <p>such memorial work must be set with cement mortar;</p>
338
- </item>
339
- <item id="section-28.3.list2.iii">
340
- <num>(iii)</num>
341
- <p>the bottom base of a single memorial work must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double memorial work not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
342
- </item>
343
- </blockList>
344
- XML
345
- ))
346
-
347
- subject.adjust_blocklists(doc)
348
- doc.to_s.should == subsection(<<XML
349
- <blockList id="section-28.3.list2">
350
- <item id="section-28.3.list2.g">
351
- <num>(g)</num>
352
- <p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
353
- </item>
354
- <item id="section-28.3.list2.h">
355
- <num>(h)</num>
356
- <p>all the components of memorial work must be completed before being brought into a cemetery;</p>
357
- </item>
358
- <item id="section-28.3.list2.i">
359
- <num>(i)</num>
360
- <blockList id="section-28.3.list2.i.list0">
361
- <listIntroduction>item i</listIntroduction>
362
- <item id="section-28.3.list2.i.list0.I">
363
- <num>(I)</num>
364
- <p>a subitem</p>
365
- </item>
366
- <item id="section-28.3.list2.i.list0.II">
367
- <num>(II)</num>
368
- <p>another subitem</p>
369
- </item>
370
- </blockList>
371
- </item>
372
- <item id="section-28.3.list2.j">
373
- <num>(j)</num>
374
- <blockList id="section-28.3.list2.j.list1">
375
- <listIntroduction>in all cases where memorial work rests on a base -</listIntroduction>
376
- <item id="section-28.3.list2.j.list1.i">
377
- <num>(i)</num>
378
- <p>such memorial work must have a foundation;</p>
379
- </item>
380
- <item id="section-28.3.list2.j.list1.ii">
381
- <num>(ii)</num>
382
- <p>such memorial work must be set with cement mortar;</p>
383
- </item>
384
- <item id="section-28.3.list2.j.list1.iii">
385
- <num>(iii)</num>
386
- <p>the bottom base of a single memorial work must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double memorial work not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
387
- </item>
388
- </blockList>
389
- </item>
390
- </blockList>
391
- XML
392
- )
393
- end
394
-
395
- # -------------------------------------------------------------------------
396
-
397
- it 'should treat (aa) after (z) as siblings' do
398
- doc = xml2doc(subsection(<<XML
399
- <blockList id="list0">
400
- <item id="list0.y">
401
- <num>(y)</num>
402
- <p>foo</p>
403
- </item>
404
- <item id="list0.z">
405
- <num>(z)</num>
406
- <p>item-z</p>
407
- </item>
408
- <item id="list0.aa">
409
- <num>(aa)</num>
410
- <p>item-aa</p>
411
- </item>
412
- <item id="list0.bb">
413
- <num>(bb)</num>
414
- <p>item-bb</p>
415
- </item>
416
- </blockList>
417
- XML
418
- ))
419
-
420
- subject.adjust_blocklists(doc)
421
- doc.to_s.should == subsection(<<XML
422
- <blockList id="list0">
423
- <item id="list0.y">
424
- <num>(y)</num>
425
- <p>foo</p>
426
- </item>
427
- <item id="list0.z">
428
- <num>(z)</num>
429
- <p>item-z</p>
430
- </item>
431
- <item id="list0.aa">
432
- <num>(aa)</num>
433
- <p>item-aa</p>
434
- </item>
435
- <item id="list0.bb">
436
- <num>(bb)</num>
437
- <p>item-bb</p>
438
- </item>
439
- </blockList>
440
- XML
441
- )
442
- end
443
-
444
- # -------------------------------------------------------------------------
445
-
446
- it 'should treat (AA) after (z) a sublist' do
447
- doc = xml2doc(subsection(<<XML
448
- <blockList id="list0" renest="true">
449
- <item id="list0.y">
450
- <num>(y)</num>
451
- <p>foo</p>
452
- </item>
453
- <item id="list0.z">
454
- <num>(z)</num>
455
- <p>item-z</p>
456
- </item>
457
- <item id="list0.AA">
458
- <num>(AA)</num>
459
- <p>item-AA</p>
460
- </item>
461
- <item id="list0.BB">
462
- <num>(BB)</num>
463
- <p>item-BB</p>
464
- </item>
465
- </blockList>
466
- XML
467
- ))
468
-
469
- subject.adjust_blocklists(doc)
470
- doc.to_s.should == subsection(<<XML
471
- <blockList id="list0">
472
- <item id="list0.y">
473
- <num>(y)</num>
474
- <p>foo</p>
475
- </item>
476
- <item id="list0.z">
477
- <num>(z)</num>
478
- <blockList id="list0.z.list0">
479
- <listIntroduction>item-z</listIntroduction>
480
- <item id="list0.z.list0.AA">
481
- <num>(AA)</num>
482
- <p>item-AA</p>
483
- </item>
484
- <item id="list0.z.list0.BB">
485
- <num>(BB)</num>
486
- <p>item-BB</p>
487
- </item>
488
- </blockList>
489
- </item>
490
- </blockList>
491
- XML
492
- )
493
- end
494
-
495
- # -------------------------------------------------------------------------
496
-
497
- it 'should handle deeply nested lists' do
498
- doc = xml2doc(subsection(<<XML
499
- <blockList id="list0" renest="true">
500
- <item id="list0.a">
501
- <num>(a)</num>
502
- <p>foo</p>
503
- </item>
504
- <item id="list0.b">
505
- <num>(b)</num>
506
- <p>item-b</p>
507
- </item>
508
- <item id="list0.i">
509
- <num>(i)</num>
510
- <p>item-b-i</p>
511
- </item>
512
- <item id="list0.aa">
513
- <num>(aa)</num>
514
- <p>item-i-aa</p>
515
- </item>
516
- <item id="list0.bb">
517
- <num>(bb)</num>
518
- <p>item-i-bb</p>
519
- </item>
520
- <item id="list0.ii">
521
- <num>(ii)</num>
522
- <p>item-b-ii</p>
523
- </item>
524
- <item id="list0.c">
525
- <num>(c)</num>
526
- <p>item-c</p>
527
- </item>
528
- <item id="list0.i">
529
- <num>(i)</num>
530
- <p>item-c-i</p>
531
- </item>
532
- <item id="list0.ii">
533
- <num>(ii)</num>
534
- <p>item-c-ii</p>
535
- </item>
536
- <item id="list0.iii">
537
- <num>(iii)</num>
538
- <p>item-c-iii</p>
539
- </item>
540
- </blockList>
541
- XML
542
- ))
543
-
544
- subject.adjust_blocklists(doc)
545
- doc.to_s.should == subsection(<<XML
546
- <blockList id="list0">
547
- <item id="list0.a">
548
- <num>(a)</num>
549
- <p>foo</p>
550
- </item>
551
- <item id="list0.b">
552
- <num>(b)</num>
553
- <blockList id="list0.b.list0">
554
- <listIntroduction>item-b</listIntroduction>
555
- <item id="list0.b.list0.i">
556
- <num>(i)</num>
557
- <blockList id="list0.b.list0.i.list0">
558
- <listIntroduction>item-b-i</listIntroduction>
559
- <item id="list0.b.list0.i.list0.aa">
560
- <num>(aa)</num>
561
- <p>item-i-aa</p>
562
- </item>
563
- <item id="list0.b.list0.i.list0.bb">
564
- <num>(bb)</num>
565
- <p>item-i-bb</p>
566
- </item>
567
- </blockList>
568
- </item>
569
- <item id="list0.b.list0.ii">
570
- <num>(ii)</num>
571
- <p>item-b-ii</p>
572
- </item>
573
- </blockList>
574
- </item>
575
- <item id="list0.c">
576
- <num>(c)</num>
577
- <blockList id="list0.c.list1">
578
- <listIntroduction>item-c</listIntroduction>
579
- <item id="list0.c.list1.i">
580
- <num>(i)</num>
581
- <p>item-c-i</p>
582
- </item>
583
- <item id="list0.c.list1.ii">
584
- <num>(ii)</num>
585
- <p>item-c-ii</p>
586
- </item>
587
- <item id="list0.c.list1.iii">
588
- <num>(iii)</num>
589
- <p>item-c-iii</p>
590
- </item>
591
- </blockList>
592
- </item>
593
- </blockList>
594
- XML
595
- )
596
- end
597
-
598
- # -------------------------------------------------------------------------
599
-
600
- it 'should jump back up a level when finding (i) near (h)' do
601
- doc = xml2doc(subsection(<<XML
602
- <blockList id="section-10.1.lst0" renest="true">
603
- <item id="section-10.1.lst0.h">
604
- <num>(h)</num>
605
- <p>foo</p>
606
- </item>
607
- <item id="section-10.1.lst0.i">
608
- <num>(i)</num>
609
- <p>item-i</p>
610
- </item>
611
- <item id="section-10.1.lst0.ii">
612
- <num>(ii)</num>
613
- <p>item-ii</p>
614
- </item>
615
- <item id="section-10.1.lst0.i">
616
- <num>(i)</num>
617
- <p>item-i</p>
618
- </item>
619
- </blockList>
620
- XML
621
- ))
622
-
623
- subject.adjust_blocklists(doc)
624
- doc.to_s.should == subsection(<<XML
625
- <blockList id="section-10.1.lst0">
626
- <item id="section-10.1.lst0.h">
627
- <num>(h)</num>
628
- <blockList id="section-10.1.lst0.h.list0">
629
- <listIntroduction>foo</listIntroduction>
630
- <item id="section-10.1.lst0.h.list0.i">
631
- <num>(i)</num>
632
- <p>item-i</p>
633
- </item>
634
- <item id="section-10.1.lst0.h.list0.ii">
635
- <num>(ii)</num>
636
- <p>item-ii</p>
637
- </item>
638
- </blockList>
639
- </item>
640
- <item id="section-10.1.lst0.i">
641
- <num>(i)</num>
642
- <p>item-i</p>
643
- </item>
644
- </blockList>
645
- XML
646
- )
647
- end
648
-
649
- # -------------------------------------------------------------------------
650
-
651
- it 'should handle dotted numbers correctly' do
652
- doc = xml2doc(subsection(<<XML
653
- <blockList id="section-9.subsection-2.list2" renest="true">
654
- <item id="section-9.subsection-2.list2.9.2.1">
655
- <num>9.2.1</num>
656
- <p>is incapable of trading because of an illness, provided that:</p>
657
- </item>
658
- <item id="section-9.subsection-2.list2.9.2.1.1">
659
- <num>9.2.1.1</num>
660
- <p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
661
- </item>
662
- <item id="section-9.subsection-2.list2.9.2.1.2">
663
- <num>9.2.1.2</num>
664
- <p>the dependent or assistant is only permitted to replace the permit-</p>
665
- </item>
666
- </blockList>
667
- XML
668
- ))
669
-
670
- subject.adjust_blocklists(doc)
671
- doc.to_s.should == subsection(<<XML
672
- <blockList id="section-9.subsection-2.list2">
673
- <item id="section-9.subsection-2.list2.9.2.1">
674
- <num>9.2.1</num>
675
- <blockList id="section-9.subsection-2.list2.9.2.1.list0">
676
- <listIntroduction>is incapable of trading because of an illness, provided that:</listIntroduction>
677
- <item id="section-9.subsection-2.list2.9.2.1.list0.9.2.1.1">
678
- <num>9.2.1.1</num>
679
- <p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
680
- </item>
681
- <item id="section-9.subsection-2.list2.9.2.1.list0.9.2.1.2">
682
- <num>9.2.1.2</num>
683
- <p>the dependent or assistant is only permitted to replace the permit-</p>
684
- </item>
685
- </blockList>
686
- </item>
687
- </blockList>
688
- XML
689
- )
690
- end
691
-
692
- it 'should handle p tags just before' do
693
- doc = xml2doc(subsection(<<XML
694
- <p>intro</p>
695
- <blockList id="section-10.1.lst0">
696
- <item id="section-10.1.lst0.a">
697
- <num>(a)</num>
698
- <p>foo</p>
699
- </item>
700
- </blockList>
701
- XML
702
- ))
703
-
704
- subject.adjust_blocklists(doc)
705
- doc.to_s.should == subsection(<<XML
706
- <blockList id="section-10.1.lst0">
707
- <listIntroduction>intro</listIntroduction>
708
- <item id="section-10.1.lst0.a">
709
- <num>(a)</num>
710
- <p>foo</p>
711
- </item>
712
- </blockList>
713
- XML
714
- )
715
- end
716
- end
717
-
718
10
  describe '#preprocess' do
719
11
  it 'should split inline table cells into block table cells' do
720
12
  text = <<EOS