slaw 8.0.0 → 10.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/.travis.yml +1 -1
- data/README.md +31 -1
- data/bin/slaw +7 -1
- data/lib/slaw/grammars/counters.rb +22 -5
- data/lib/slaw/grammars/schedules_nodes.rb +13 -16
- data/lib/slaw/grammars/tables_nodes.rb +3 -1
- data/lib/slaw/grammars/terminals.treetop +5 -1
- data/lib/slaw/grammars/za/act.treetop +26 -7
- data/lib/slaw/grammars/za/act_nodes.rb +66 -29
- data/lib/slaw/grammars/za/act_text.xsl +17 -23
- data/lib/slaw/namespace.rb +9 -3
- data/lib/slaw/parse/blocklists.rb +10 -9
- data/lib/slaw/parse/builder.rb +1 -4
- data/lib/slaw/schemas/akomantoso30.xsd +6862 -0
- data/lib/slaw/version.rb +1 -1
- data/lib/slaw/xml_support.rb +1 -67
- data/spec/fixtures/community-fire-safety.xml +15 -15
- data/spec/generator_spec.rb +1 -1
- data/spec/parse/blocklists_spec.rb +169 -169
- data/spec/xml_helpers.rb +2 -2
- data/spec/za/act_block_spec.rb +367 -249
- data/spec/za/act_inline_spec.rb +67 -69
- data/spec/za/act_schedules_spec.rb +312 -348
- data/spec/za/act_table_spec.rb +45 -47
- data/spec/za/postprocess_spec.rb +2 -2
- metadata +3 -2
data/lib/slaw/version.rb
CHANGED
data/lib/slaw/xml_support.rb
CHANGED
@@ -5,73 +5,7 @@ class Nokogiri::XML::Node
|
|
5
5
|
# Major AN elements such as chapters, parts and sections almost
|
6
6
|
# always have numbers.
|
7
7
|
def num
|
8
|
-
node = at_xpath('./a:num', a: Slaw
|
8
|
+
node = at_xpath('./a:num', a: Slaw.akn_namespace)
|
9
9
|
node ? node.text.gsub(/\.$/, '') : nil
|
10
10
|
end
|
11
|
-
|
12
|
-
def heading
|
13
|
-
node = at_xpath('./a:heading', a: Slaw::NS)
|
14
|
-
node ? node.text : nil
|
15
|
-
end
|
16
|
-
|
17
|
-
def id
|
18
|
-
self['id']
|
19
|
-
end
|
20
|
-
|
21
|
-
def chapters
|
22
|
-
xpath('./a:chapter', a: Slaw::NS)
|
23
|
-
end
|
24
|
-
|
25
|
-
def sections
|
26
|
-
xpath('./a:section', a: Slaw::NS)
|
27
|
-
end
|
28
|
-
|
29
|
-
def parts
|
30
|
-
xpath('./a:part', a: Slaw::NS)
|
31
|
-
end
|
32
|
-
|
33
|
-
# Get a nodeset of child elements of this node which should show
|
34
|
-
# up in the table of contents
|
35
|
-
def toc_children
|
36
|
-
if in_schedules?
|
37
|
-
# in schedules, we only care about chapters that have numbers in them, because we
|
38
|
-
# can't link to them otherwise
|
39
|
-
xpath('a:chapter[a:num]', a: Slaw::NS)
|
40
|
-
else
|
41
|
-
xpath('a:part | a:chapter | a:section', a: Slaw::NS)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Does this element hold children for the table of contents?
|
46
|
-
def toc_container?
|
47
|
-
!toc_children.empty?
|
48
|
-
end
|
49
|
-
|
50
|
-
# Title for this element in the table of contents
|
51
|
-
def toc_title
|
52
|
-
case name
|
53
|
-
when "mainBody"
|
54
|
-
"Schedules"
|
55
|
-
when "chapter"
|
56
|
-
title = in_schedules? ? "Schedule" : "Chapter"
|
57
|
-
title << ' ' + num
|
58
|
-
title << ' - ' + heading if heading
|
59
|
-
title
|
60
|
-
when "part"
|
61
|
-
"Part #{num} - #{heading}"
|
62
|
-
when "section"
|
63
|
-
if not heading or heading.empty?
|
64
|
-
"Section #{num}"
|
65
|
-
elsif num
|
66
|
-
"#{num}. #{heading}"
|
67
|
-
else
|
68
|
-
heading
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# Is this element part of a schedule document?
|
74
|
-
def in_schedules?
|
75
|
-
not ancestors('doc[name="schedules"]').empty?
|
76
|
-
end
|
77
11
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<akomaNtoso xmlns
|
2
|
+
<akomaNtoso xmlns="http://docs.oasis-open.org/legaldocml/ns/akn/3.0">
|
3
3
|
<act contains="singleVersion">
|
4
4
|
<meta>
|
5
5
|
<identification source="#openbylaws">
|
6
6
|
<FRBRWork>
|
7
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/main"/>
|
8
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety"/>
|
7
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/main"/>
|
8
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety"/>
|
9
9
|
<FRBRalias value="Community Fire Safety By-law"/>
|
10
10
|
<FRBRdate date="2002-02-28" name="Generation"/>
|
11
11
|
<FRBRauthor href="#council" as="#author"/>
|
12
12
|
<FRBRcountry value="za"/>
|
13
13
|
</FRBRWork>
|
14
14
|
<FRBRExpression>
|
15
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/main/eng@"/>
|
16
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
15
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/main/eng@"/>
|
16
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
17
17
|
<FRBRdate date="2002-02-28" name="Generation"/>
|
18
18
|
<FRBRauthor href="#council" as="#author"/>
|
19
19
|
<FRBRlanguage language="eng"/>
|
20
20
|
</FRBRExpression>
|
21
21
|
<FRBRManifestation>
|
22
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/main/eng@"/>
|
23
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
22
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/main/eng@"/>
|
23
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
24
24
|
<FRBRdate date="2014-01-14" name="Generation"/>
|
25
25
|
<FRBRauthor href="#openbylaws" as="#author"/>
|
26
26
|
</FRBRManifestation>
|
@@ -34,8 +34,8 @@
|
|
34
34
|
<TLCOrganization id="openbylaws" href="http://openbylaws.org.za" showAs="openbylaws.org.za"/>
|
35
35
|
<TLCOrganization id="council" href="/ontology/organization/za/council.cape-town" showAs="Cape Town City Council"/>
|
36
36
|
<TLCRole id="author" href="/ontology/role/author" showAs="Author"/>
|
37
|
-
<original id="original" href="/za/by-law/cape-town/2002/community-fire-safety" showAs="Original"/>
|
38
|
-
<passiveRef id="amendment-1" href="/za/by-law/cape-town/2007/community-fire-safety-amendment" showAs="Community Fire Safety Amendment By-law"/>
|
37
|
+
<original id="original" href="/akn/za/by-law/cape-town/2002/community-fire-safety" showAs="Original"/>
|
38
|
+
<passiveRef id="amendment-1" href="/akn/za/by-law/cape-town/2007/community-fire-safety-amendment" showAs="Community Fire Safety Amendment By-law"/>
|
39
39
|
<TLCTerm id="term-above_ground_storage_tank" href="/ontology/term/this.eng.above_ground_storage_tank" showAs="above ground storage tank"/>
|
40
40
|
<TLCTerm id="term-automatic_releasing_hold-open_device" href="/ontology/term/this.eng.automatic_releasing_hold-open_device" showAs="automatic releasing hold-open device"/>
|
41
41
|
<TLCTerm id="term-boundary" href="/ontology/term/this.eng.boundary" showAs="boundary"/>
|
@@ -2914,22 +2914,22 @@ Any person who:—
|
|
2914
2914
|
<meta>
|
2915
2915
|
<identification source="#openbylaws">
|
2916
2916
|
<FRBRWork>
|
2917
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/schedules"/>
|
2918
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety"/>
|
2917
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/schedules"/>
|
2918
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety"/>
|
2919
2919
|
<FRBRdate date="2002-02-28" name="Generation"/>
|
2920
2920
|
<FRBRauthor href="#council" as="#author"/>
|
2921
2921
|
<FRBRcountry value="za"/>
|
2922
2922
|
</FRBRWork>
|
2923
2923
|
<FRBRExpression>
|
2924
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/schedules/eng@"/>
|
2925
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
2924
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/schedules/eng@"/>
|
2925
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
2926
2926
|
<FRBRdate date="2002-02-28" name="Generation"/>
|
2927
2927
|
<FRBRauthor href="#council" as="#author"/>
|
2928
2928
|
<FRBRlanguage language="eng"/>
|
2929
2929
|
</FRBRExpression>
|
2930
2930
|
<FRBRManifestation>
|
2931
|
-
<FRBRthis value="/za/by-law/cape-town/2002/community-fire-safety/schedules/eng@"/>
|
2932
|
-
<FRBRuri value="/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
2931
|
+
<FRBRthis value="/akn/za/by-law/cape-town/2002/community-fire-safety/schedules/eng@"/>
|
2932
|
+
<FRBRuri value="/akn/za/by-law/cape-town/2002/community-fire-safety/eng@"/>
|
2933
2933
|
<FRBRdate date="2014-01-14" name="Generation"/>
|
2934
2934
|
<FRBRauthor href="#openbylaws" as="#author"/>
|
2935
2935
|
</FRBRManifestation>
|
data/spec/generator_spec.rb
CHANGED
@@ -207,7 +207,7 @@ Hello [there](/za/act/123) friend.
|
|
207
207
|
it 'should replace eol with newlines in tables' do
|
208
208
|
doc = xml2doc(section(<<XML
|
209
209
|
<num>1.</num>
|
210
|
-
<table
|
210
|
+
<table eId="sec__21_table_1">
|
211
211
|
<tr>
|
212
212
|
<td>
|
213
213
|
<p>foo<eol/>bar<eol/>baz</p>
|
@@ -7,28 +7,28 @@ describe Slaw::Parse::Blocklists do
|
|
7
7
|
describe '#adjust_blocklists' do
|
8
8
|
it 'should nest simple blocks' do
|
9
9
|
doc = xml2doc(subsection(<<XML
|
10
|
-
<blockList
|
11
|
-
<item
|
10
|
+
<blockList eId="sec__10__subsec_1__list_1" renest="true">
|
11
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
12
12
|
<num>(a)</num>
|
13
13
|
<p>foo</p>
|
14
14
|
</item>
|
15
|
-
<item
|
15
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
16
16
|
<num>(i)</num>
|
17
17
|
<p>item-i</p>
|
18
18
|
</item>
|
19
|
-
<item
|
19
|
+
<item eId="sec__10__subsec_1__list_1__item_ii">
|
20
20
|
<num>(ii)</num>
|
21
21
|
<p>item-ii</p>
|
22
22
|
</item>
|
23
|
-
<item
|
23
|
+
<item eId="sec__10__subsec_1__list_1__item_iii">
|
24
24
|
<num>(iii)</num>
|
25
25
|
<p>item-iii</p>
|
26
26
|
</item>
|
27
|
-
<item
|
27
|
+
<item eId="sec__10__subsec_1__list_1__item_aa">
|
28
28
|
<num>(aa)</num>
|
29
29
|
<p>item-aa</p>
|
30
30
|
</item>
|
31
|
-
<item
|
31
|
+
<item eId="sec__10__subsec_1__list_1__item_bb">
|
32
32
|
<num>(bb)</num>
|
33
33
|
<p>item-bb</p>
|
34
34
|
</item>
|
@@ -38,28 +38,28 @@ XML
|
|
38
38
|
|
39
39
|
subject.adjust_blocklists(doc)
|
40
40
|
doc.to_s.should == subsection(<<XML
|
41
|
-
<blockList
|
42
|
-
<item
|
41
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
42
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
43
43
|
<num>(a)</num>
|
44
|
-
<blockList
|
44
|
+
<blockList eId="sec__10__subsec_1__list_1__item_a__list_1">
|
45
45
|
<listIntroduction>foo</listIntroduction>
|
46
|
-
<item
|
46
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_i">
|
47
47
|
<num>(i)</num>
|
48
48
|
<p>item-i</p>
|
49
49
|
</item>
|
50
|
-
<item
|
50
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_ii">
|
51
51
|
<num>(ii)</num>
|
52
52
|
<p>item-ii</p>
|
53
53
|
</item>
|
54
|
-
<item
|
54
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_iii">
|
55
55
|
<num>(iii)</num>
|
56
|
-
<blockList
|
56
|
+
<blockList eId="sec__10__subsec_1__list_1__item_a__list_1__item_iii__list_1">
|
57
57
|
<listIntroduction>item-iii</listIntroduction>
|
58
|
-
<item
|
58
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_iii__list_1__item_aa">
|
59
59
|
<num>(aa)</num>
|
60
60
|
<p>item-aa</p>
|
61
61
|
</item>
|
62
|
-
<item
|
62
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_iii__list_1__item_bb">
|
63
63
|
<num>(bb)</num>
|
64
64
|
<p>item-bb</p>
|
65
65
|
</item>
|
@@ -76,20 +76,20 @@ XML
|
|
76
76
|
|
77
77
|
it 'should jump back up a level' do
|
78
78
|
doc = xml2doc(subsection(<<XML
|
79
|
-
<blockList
|
80
|
-
<item
|
79
|
+
<blockList eId="sec__10__subsec_1__list_1" renest="true">
|
80
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
81
81
|
<num>(a)</num>
|
82
82
|
<p>foo</p>
|
83
83
|
</item>
|
84
|
-
<item
|
84
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
85
85
|
<num>(i)</num>
|
86
86
|
<p>item-i</p>
|
87
87
|
</item>
|
88
|
-
<item
|
88
|
+
<item eId="sec__10__subsec_1__list_1__item_ii">
|
89
89
|
<num>(ii)</num>
|
90
90
|
<p>item-ii</p>
|
91
91
|
</item>
|
92
|
-
<item
|
92
|
+
<item eId="sec__10__subsec_1__list_1__item_c">
|
93
93
|
<num>(c)</num>
|
94
94
|
<p>item-c</p>
|
95
95
|
</item>
|
@@ -99,22 +99,22 @@ XML
|
|
99
99
|
|
100
100
|
subject.adjust_blocklists(doc)
|
101
101
|
doc.to_s.should == subsection(<<XML
|
102
|
-
<blockList
|
103
|
-
<item
|
102
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
103
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
104
104
|
<num>(a)</num>
|
105
|
-
<blockList
|
105
|
+
<blockList eId="sec__10__subsec_1__list_1__item_a__list_1">
|
106
106
|
<listIntroduction>foo</listIntroduction>
|
107
|
-
<item
|
107
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_i">
|
108
108
|
<num>(i)</num>
|
109
109
|
<p>item-i</p>
|
110
110
|
</item>
|
111
|
-
<item
|
111
|
+
<item eId="sec__10__subsec_1__list_1__item_a__list_1__item_ii">
|
112
112
|
<num>(ii)</num>
|
113
113
|
<p>item-ii</p>
|
114
114
|
</item>
|
115
115
|
</blockList>
|
116
116
|
</item>
|
117
|
-
<item
|
117
|
+
<item eId="sec__10__subsec_1__list_1__item_c">
|
118
118
|
<num>(c)</num>
|
119
119
|
<p>item-c</p>
|
120
120
|
</item>
|
@@ -127,16 +127,16 @@ XML
|
|
127
127
|
|
128
128
|
it 'should handle (i) correctly' do
|
129
129
|
doc = xml2doc(subsection(<<XML
|
130
|
-
<blockList
|
131
|
-
<item
|
130
|
+
<blockList eId="sec__10__subsec_1__list_1" renest="true">
|
131
|
+
<item eId="sec__10__subsec_1__list_1__item_h">
|
132
132
|
<num>(h)</num>
|
133
133
|
<p>foo</p>
|
134
134
|
</item>
|
135
|
-
<item
|
135
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
136
136
|
<num>(i)</num>
|
137
137
|
<p>item-i</p>
|
138
138
|
</item>
|
139
|
-
<item
|
139
|
+
<item eId="sec__10__subsec_1__list_1__item_j">
|
140
140
|
<num>(j)</num>
|
141
141
|
<p>item-ii</p>
|
142
142
|
</item>
|
@@ -146,16 +146,16 @@ XML
|
|
146
146
|
|
147
147
|
subject.adjust_blocklists(doc)
|
148
148
|
doc.to_s.should == subsection(<<XML
|
149
|
-
<blockList
|
150
|
-
<item
|
149
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
150
|
+
<item eId="sec__10__subsec_1__list_1__item_h">
|
151
151
|
<num>(h)</num>
|
152
152
|
<p>foo</p>
|
153
153
|
</item>
|
154
|
-
<item
|
154
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
155
155
|
<num>(i)</num>
|
156
156
|
<p>item-i</p>
|
157
157
|
</item>
|
158
|
-
<item
|
158
|
+
<item eId="sec__10__subsec_1__list_1__item_j">
|
159
159
|
<num>(j)</num>
|
160
160
|
<p>item-ii</p>
|
161
161
|
</item>
|
@@ -168,24 +168,24 @@ XML
|
|
168
168
|
|
169
169
|
it 'should handle (u) (v) and (x) correctly' do
|
170
170
|
doc = xml2doc(subsection(<<XML
|
171
|
-
<blockList
|
172
|
-
<item
|
171
|
+
<blockList eId="sec__10__subsec_1__list_1" renest="true">
|
172
|
+
<item eId="sec__10__subsec_1__list_1__item_t">
|
173
173
|
<num>(t)</num>
|
174
174
|
<p>foo</p>
|
175
175
|
</item>
|
176
|
-
<item
|
176
|
+
<item eId="sec__10__subsec_1__list_1__item_u">
|
177
177
|
<num>(u)</num>
|
178
178
|
<p>item-i</p>
|
179
179
|
</item>
|
180
|
-
<item
|
180
|
+
<item eId="sec__10__subsec_1__list_1__item_v">
|
181
181
|
<num>(v)</num>
|
182
182
|
<p>item-ii</p>
|
183
183
|
</item>
|
184
|
-
<item
|
184
|
+
<item eId="sec__10__subsec_1__list_1__item_w">
|
185
185
|
<num>(w)</num>
|
186
186
|
<p>item-ii</p>
|
187
187
|
</item>
|
188
|
-
<item
|
188
|
+
<item eId="sec__10__subsec_1__list_1__item_x">
|
189
189
|
<num>(x)</num>
|
190
190
|
<p>item-ii</p>
|
191
191
|
</item>
|
@@ -195,24 +195,24 @@ XML
|
|
195
195
|
|
196
196
|
subject.adjust_blocklists(doc)
|
197
197
|
doc.to_s.should == subsection(<<XML
|
198
|
-
<blockList
|
199
|
-
<item
|
198
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
199
|
+
<item eId="sec__10__subsec_1__list_1__item_t">
|
200
200
|
<num>(t)</num>
|
201
201
|
<p>foo</p>
|
202
202
|
</item>
|
203
|
-
<item
|
203
|
+
<item eId="sec__10__subsec_1__list_1__item_u">
|
204
204
|
<num>(u)</num>
|
205
205
|
<p>item-i</p>
|
206
206
|
</item>
|
207
|
-
<item
|
207
|
+
<item eId="sec__10__subsec_1__list_1__item_v">
|
208
208
|
<num>(v)</num>
|
209
209
|
<p>item-ii</p>
|
210
210
|
</item>
|
211
|
-
<item
|
211
|
+
<item eId="sec__10__subsec_1__list_1__item_w">
|
212
212
|
<num>(w)</num>
|
213
213
|
<p>item-ii</p>
|
214
214
|
</item>
|
215
|
-
<item
|
215
|
+
<item eId="sec__10__subsec_1__list_1__item_x">
|
216
216
|
<num>(x)</num>
|
217
217
|
<p>item-ii</p>
|
218
218
|
</item>
|
@@ -226,34 +226,34 @@ XML
|
|
226
226
|
|
227
227
|
it 'should handle (j) correctly' do
|
228
228
|
doc = xml2doc(subsection(<<XML
|
229
|
-
<blockList
|
230
|
-
<item
|
229
|
+
<blockList eId="sec__28__subsec_3__item_list2" renest="true">
|
230
|
+
<item eId="sec__28__subsec_3__item_list2.g">
|
231
231
|
<num>(g)</num>
|
232
|
-
<p>all <term refersTo="#term-memorial_work"
|
232
|
+
<p>all <term refersTo="#term-memorial_work" eId="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
|
233
233
|
</item>
|
234
|
-
<item
|
234
|
+
<item eId="sec__28__subsec_3__item_list2.h">
|
235
235
|
<num>(h)</num>
|
236
|
-
<p>all the components of <term refersTo="#term-memorial_work"
|
236
|
+
<p>all the components of <term refersTo="#term-memorial_work" eId="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" eId="trm383">cemetery</term>;</p>
|
237
237
|
</item>
|
238
|
-
<item
|
238
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
239
239
|
<num>(i)</num>
|
240
240
|
<p>footstones must consist of one solid piece;</p>
|
241
241
|
</item>
|
242
|
-
<item
|
242
|
+
<item eId="sec__28__subsec_3__item_list2.j">
|
243
243
|
<num>(j)</num>
|
244
|
-
<p>in all cases where <term refersTo="#term-memorial_work"
|
244
|
+
<p>in all cases where <term refersTo="#term-memorial_work" eId="trm384">memorial work</term> rests on a base -</p>
|
245
245
|
</item>
|
246
|
-
<item
|
246
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
247
247
|
<num>(i)</num>
|
248
|
-
<p>such <term refersTo="#term-memorial_work"
|
248
|
+
<p>such <term refersTo="#term-memorial_work" eId="trm385">memorial work</term> must have a foundation;</p>
|
249
249
|
</item>
|
250
|
-
<item
|
250
|
+
<item eId="sec__28__subsec_3__item_list2.ii">
|
251
251
|
<num>(ii)</num>
|
252
|
-
<p>such <term refersTo="#term-memorial_work"
|
252
|
+
<p>such <term refersTo="#term-memorial_work" eId="trm386">memorial work</term> must be set with cement mortar;</p>
|
253
253
|
</item>
|
254
|
-
<item
|
254
|
+
<item eId="sec__28__subsec_3__item_list2.iii">
|
255
255
|
<num>(iii)</num>
|
256
|
-
<p>the bottom base of a single <term refersTo="#term-memorial_work"
|
256
|
+
<p>the bottom base of a single <term refersTo="#term-memorial_work" eId="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" eId="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
|
257
257
|
</item>
|
258
258
|
</blockList>
|
259
259
|
XML
|
@@ -261,34 +261,34 @@ XML
|
|
261
261
|
|
262
262
|
subject.adjust_blocklists(doc)
|
263
263
|
doc.to_s.should == subsection(<<XML
|
264
|
-
<blockList
|
265
|
-
<item
|
264
|
+
<blockList eId="sec__28__subsec_3__item_list2">
|
265
|
+
<item eId="sec__28__subsec_3__item_list2.g">
|
266
266
|
<num>(g)</num>
|
267
|
-
<p>all <term refersTo="#term-memorial_work"
|
267
|
+
<p>all <term refersTo="#term-memorial_work" eId="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
|
268
268
|
</item>
|
269
|
-
<item
|
269
|
+
<item eId="sec__28__subsec_3__item_list2.h">
|
270
270
|
<num>(h)</num>
|
271
|
-
<p>all the components of <term refersTo="#term-memorial_work"
|
271
|
+
<p>all the components of <term refersTo="#term-memorial_work" eId="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" eId="trm383">cemetery</term>;</p>
|
272
272
|
</item>
|
273
|
-
<item
|
273
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
274
274
|
<num>(i)</num>
|
275
275
|
<p>footstones must consist of one solid piece;</p>
|
276
276
|
</item>
|
277
|
-
<item
|
277
|
+
<item eId="sec__28__subsec_3__item_list2.j">
|
278
278
|
<num>(j)</num>
|
279
|
-
<blockList
|
280
|
-
<listIntroduction>in all cases where <term refersTo="#term-memorial_work"
|
281
|
-
<item
|
279
|
+
<blockList eId="sec__28__subsec_3__item_list2.j__list_1">
|
280
|
+
<listIntroduction>in all cases where <term refersTo="#term-memorial_work" eId="trm384">memorial work</term> rests on a base -</listIntroduction>
|
281
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_1__item_i">
|
282
282
|
<num>(i)</num>
|
283
|
-
<p>such <term refersTo="#term-memorial_work"
|
283
|
+
<p>such <term refersTo="#term-memorial_work" eId="trm385">memorial work</term> must have a foundation;</p>
|
284
284
|
</item>
|
285
|
-
<item
|
285
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_1__item_ii">
|
286
286
|
<num>(ii)</num>
|
287
|
-
<p>such <term refersTo="#term-memorial_work"
|
287
|
+
<p>such <term refersTo="#term-memorial_work" eId="trm386">memorial work</term> must be set with cement mortar;</p>
|
288
288
|
</item>
|
289
|
-
<item
|
289
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_1__item_iii">
|
290
290
|
<num>(iii)</num>
|
291
|
-
<p>the bottom base of a single <term refersTo="#term-memorial_work"
|
291
|
+
<p>the bottom base of a single <term refersTo="#term-memorial_work" eId="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" eId="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
|
292
292
|
</item>
|
293
293
|
</blockList>
|
294
294
|
</item>
|
@@ -300,40 +300,40 @@ XML
|
|
300
300
|
# -------------------------------------------------------------------------
|
301
301
|
it 'should handle (I) correctly' do
|
302
302
|
doc = xml2doc(subsection(<<XML
|
303
|
-
<blockList
|
304
|
-
<item
|
303
|
+
<blockList eId="sec__28__subsec_3__item_list2" renest="true">
|
304
|
+
<item eId="sec__28__subsec_3__item_list2.g">
|
305
305
|
<num>(g)</num>
|
306
306
|
<p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
|
307
307
|
</item>
|
308
|
-
<item
|
308
|
+
<item eId="sec__28__subsec_3__item_list2.h">
|
309
309
|
<num>(h)</num>
|
310
310
|
<p>all the components of memorial work must be completed before being brought into a cemetery;</p>
|
311
311
|
</item>
|
312
|
-
<item
|
312
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
313
313
|
<num>(i)</num>
|
314
314
|
<p>item i</p>
|
315
315
|
</item>
|
316
|
-
<item
|
316
|
+
<item eId="sec__28__subsec_3__item_list2.I">
|
317
317
|
<num>(I)</num>
|
318
318
|
<p>a subitem</p>
|
319
319
|
</item>
|
320
|
-
<item
|
320
|
+
<item eId="sec__28__subsec_3__item_list2.II">
|
321
321
|
<num>(II)</num>
|
322
322
|
<p>another subitem</p>
|
323
323
|
</item>
|
324
|
-
<item
|
324
|
+
<item eId="sec__28__subsec_3__item_list2.j">
|
325
325
|
<num>(j)</num>
|
326
326
|
<p>in all cases where memorial work rests on a base -</p>
|
327
327
|
</item>
|
328
|
-
<item
|
328
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
329
329
|
<num>(i)</num>
|
330
330
|
<p>such memorial work must have a foundation;</p>
|
331
331
|
</item>
|
332
|
-
<item
|
332
|
+
<item eId="sec__28__subsec_3__item_list2.ii">
|
333
333
|
<num>(ii)</num>
|
334
334
|
<p>such memorial work must be set with cement mortar;</p>
|
335
335
|
</item>
|
336
|
-
<item
|
336
|
+
<item eId="sec__28__subsec_3__item_list2.iii">
|
337
337
|
<num>(iii)</num>
|
338
338
|
<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>
|
339
339
|
</item>
|
@@ -343,42 +343,42 @@ XML
|
|
343
343
|
|
344
344
|
subject.adjust_blocklists(doc)
|
345
345
|
doc.to_s.should == subsection(<<XML
|
346
|
-
<blockList
|
347
|
-
<item
|
346
|
+
<blockList eId="sec__28__subsec_3__item_list2">
|
347
|
+
<item eId="sec__28__subsec_3__item_list2.g">
|
348
348
|
<num>(g)</num>
|
349
349
|
<p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
|
350
350
|
</item>
|
351
|
-
<item
|
351
|
+
<item eId="sec__28__subsec_3__item_list2.h">
|
352
352
|
<num>(h)</num>
|
353
353
|
<p>all the components of memorial work must be completed before being brought into a cemetery;</p>
|
354
354
|
</item>
|
355
|
-
<item
|
355
|
+
<item eId="sec__28__subsec_3__item_list2.i">
|
356
356
|
<num>(i)</num>
|
357
|
-
<blockList
|
357
|
+
<blockList eId="sec__28__subsec_3__item_list2.i__list_1">
|
358
358
|
<listIntroduction>item i</listIntroduction>
|
359
|
-
<item
|
359
|
+
<item eId="sec__28__subsec_3__item_list2.i__list_1__item_I">
|
360
360
|
<num>(I)</num>
|
361
361
|
<p>a subitem</p>
|
362
362
|
</item>
|
363
|
-
<item
|
363
|
+
<item eId="sec__28__subsec_3__item_list2.i__list_1__item_II">
|
364
364
|
<num>(II)</num>
|
365
365
|
<p>another subitem</p>
|
366
366
|
</item>
|
367
367
|
</blockList>
|
368
368
|
</item>
|
369
|
-
<item
|
369
|
+
<item eId="sec__28__subsec_3__item_list2.j">
|
370
370
|
<num>(j)</num>
|
371
|
-
<blockList
|
371
|
+
<blockList eId="sec__28__subsec_3__item_list2.j__list_2">
|
372
372
|
<listIntroduction>in all cases where memorial work rests on a base -</listIntroduction>
|
373
|
-
<item
|
373
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_2__item_i">
|
374
374
|
<num>(i)</num>
|
375
375
|
<p>such memorial work must have a foundation;</p>
|
376
376
|
</item>
|
377
|
-
<item
|
377
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_2__item_ii">
|
378
378
|
<num>(ii)</num>
|
379
379
|
<p>such memorial work must be set with cement mortar;</p>
|
380
380
|
</item>
|
381
|
-
<item
|
381
|
+
<item eId="sec__28__subsec_3__item_list2.j__list_2__item_iii">
|
382
382
|
<num>(iii)</num>
|
383
383
|
<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>
|
384
384
|
</item>
|
@@ -393,20 +393,20 @@ XML
|
|
393
393
|
|
394
394
|
it 'should treat (aa) after (z) as siblings' do
|
395
395
|
doc = xml2doc(subsection(<<XML
|
396
|
-
<blockList
|
397
|
-
<item
|
396
|
+
<blockList eId="list0">
|
397
|
+
<item eId="list0.y">
|
398
398
|
<num>(y)</num>
|
399
399
|
<p>foo</p>
|
400
400
|
</item>
|
401
|
-
<item
|
401
|
+
<item eId="list0.z">
|
402
402
|
<num>(z)</num>
|
403
403
|
<p>item-z</p>
|
404
404
|
</item>
|
405
|
-
<item
|
405
|
+
<item eId="list0.aa">
|
406
406
|
<num>(aa)</num>
|
407
407
|
<p>item-aa</p>
|
408
408
|
</item>
|
409
|
-
<item
|
409
|
+
<item eId="list0.bb">
|
410
410
|
<num>(bb)</num>
|
411
411
|
<p>item-bb</p>
|
412
412
|
</item>
|
@@ -416,20 +416,20 @@ XML
|
|
416
416
|
|
417
417
|
subject.adjust_blocklists(doc)
|
418
418
|
doc.to_s.should == subsection(<<XML
|
419
|
-
<blockList
|
420
|
-
<item
|
419
|
+
<blockList eId="list0">
|
420
|
+
<item eId="list0.y">
|
421
421
|
<num>(y)</num>
|
422
422
|
<p>foo</p>
|
423
423
|
</item>
|
424
|
-
<item
|
424
|
+
<item eId="list0.z">
|
425
425
|
<num>(z)</num>
|
426
426
|
<p>item-z</p>
|
427
427
|
</item>
|
428
|
-
<item
|
428
|
+
<item eId="list0.aa">
|
429
429
|
<num>(aa)</num>
|
430
430
|
<p>item-aa</p>
|
431
431
|
</item>
|
432
|
-
<item
|
432
|
+
<item eId="list0.bb">
|
433
433
|
<num>(bb)</num>
|
434
434
|
<p>item-bb</p>
|
435
435
|
</item>
|
@@ -442,20 +442,20 @@ XML
|
|
442
442
|
|
443
443
|
it 'should treat (AA) after (z) a sublist' do
|
444
444
|
doc = xml2doc(subsection(<<XML
|
445
|
-
<blockList
|
446
|
-
<item
|
445
|
+
<blockList eId="list0" renest="true">
|
446
|
+
<item eId="list0.y">
|
447
447
|
<num>(y)</num>
|
448
448
|
<p>foo</p>
|
449
449
|
</item>
|
450
|
-
<item
|
450
|
+
<item eId="list0.z">
|
451
451
|
<num>(z)</num>
|
452
452
|
<p>item-z</p>
|
453
453
|
</item>
|
454
|
-
<item
|
454
|
+
<item eId="list0.AA">
|
455
455
|
<num>(AA)</num>
|
456
456
|
<p>item-AA</p>
|
457
457
|
</item>
|
458
|
-
<item
|
458
|
+
<item eId="list0.BB">
|
459
459
|
<num>(BB)</num>
|
460
460
|
<p>item-BB</p>
|
461
461
|
</item>
|
@@ -465,20 +465,20 @@ XML
|
|
465
465
|
|
466
466
|
subject.adjust_blocklists(doc)
|
467
467
|
doc.to_s.should == subsection(<<XML
|
468
|
-
<blockList
|
469
|
-
<item
|
468
|
+
<blockList eId="list0">
|
469
|
+
<item eId="list0.y">
|
470
470
|
<num>(y)</num>
|
471
471
|
<p>foo</p>
|
472
472
|
</item>
|
473
|
-
<item
|
473
|
+
<item eId="list0.z">
|
474
474
|
<num>(z)</num>
|
475
|
-
<blockList
|
475
|
+
<blockList eId="list0.z__list_1">
|
476
476
|
<listIntroduction>item-z</listIntroduction>
|
477
|
-
<item
|
477
|
+
<item eId="list0.z__list_1__item_AA">
|
478
478
|
<num>(AA)</num>
|
479
479
|
<p>item-AA</p>
|
480
480
|
</item>
|
481
|
-
<item
|
481
|
+
<item eId="list0.z__list_1__item_BB">
|
482
482
|
<num>(BB)</num>
|
483
483
|
<p>item-BB</p>
|
484
484
|
</item>
|
@@ -493,44 +493,44 @@ XML
|
|
493
493
|
|
494
494
|
it 'should handle deeply nested lists' do
|
495
495
|
doc = xml2doc(subsection(<<XML
|
496
|
-
<blockList
|
497
|
-
<item
|
496
|
+
<blockList eId="list0" renest="true">
|
497
|
+
<item eId="list0.a">
|
498
498
|
<num>(a)</num>
|
499
499
|
<p>foo</p>
|
500
500
|
</item>
|
501
|
-
<item
|
501
|
+
<item eId="list0.b">
|
502
502
|
<num>(b)</num>
|
503
503
|
<p>item-b</p>
|
504
504
|
</item>
|
505
|
-
<item
|
505
|
+
<item eId="list0.i">
|
506
506
|
<num>(i)</num>
|
507
507
|
<p>item-b-i</p>
|
508
508
|
</item>
|
509
|
-
<item
|
509
|
+
<item eId="list0.aa">
|
510
510
|
<num>(aa)</num>
|
511
511
|
<p>item-i-aa</p>
|
512
512
|
</item>
|
513
|
-
<item
|
513
|
+
<item eId="list0.bb">
|
514
514
|
<num>(bb)</num>
|
515
515
|
<p>item-i-bb</p>
|
516
516
|
</item>
|
517
|
-
<item
|
517
|
+
<item eId="list0.ii">
|
518
518
|
<num>(ii)</num>
|
519
519
|
<p>item-b-ii</p>
|
520
520
|
</item>
|
521
|
-
<item
|
521
|
+
<item eId="list0.c">
|
522
522
|
<num>(c)</num>
|
523
523
|
<p>item-c</p>
|
524
524
|
</item>
|
525
|
-
<item
|
525
|
+
<item eId="list0.i">
|
526
526
|
<num>(i)</num>
|
527
527
|
<p>item-c-i</p>
|
528
528
|
</item>
|
529
|
-
<item
|
529
|
+
<item eId="list0.ii">
|
530
530
|
<num>(ii)</num>
|
531
531
|
<p>item-c-ii</p>
|
532
532
|
</item>
|
533
|
-
<item
|
533
|
+
<item eId="list0.iii">
|
534
534
|
<num>(iii)</num>
|
535
535
|
<p>item-c-iii</p>
|
536
536
|
</item>
|
@@ -540,48 +540,48 @@ XML
|
|
540
540
|
|
541
541
|
subject.adjust_blocklists(doc)
|
542
542
|
doc.to_s.should == subsection(<<XML
|
543
|
-
<blockList
|
544
|
-
<item
|
543
|
+
<blockList eId="list0">
|
544
|
+
<item eId="list0.a">
|
545
545
|
<num>(a)</num>
|
546
546
|
<p>foo</p>
|
547
547
|
</item>
|
548
|
-
<item
|
548
|
+
<item eId="list0.b">
|
549
549
|
<num>(b)</num>
|
550
|
-
<blockList
|
550
|
+
<blockList eId="list0.b__list_1">
|
551
551
|
<listIntroduction>item-b</listIntroduction>
|
552
|
-
<item
|
552
|
+
<item eId="list0.b__list_1__item_i">
|
553
553
|
<num>(i)</num>
|
554
|
-
<blockList
|
554
|
+
<blockList eId="list0.b__list_1__item_i__list_1">
|
555
555
|
<listIntroduction>item-b-i</listIntroduction>
|
556
|
-
<item
|
556
|
+
<item eId="list0.b__list_1__item_i__list_1__item_aa">
|
557
557
|
<num>(aa)</num>
|
558
558
|
<p>item-i-aa</p>
|
559
559
|
</item>
|
560
|
-
<item
|
560
|
+
<item eId="list0.b__list_1__item_i__list_1__item_bb">
|
561
561
|
<num>(bb)</num>
|
562
562
|
<p>item-i-bb</p>
|
563
563
|
</item>
|
564
564
|
</blockList>
|
565
565
|
</item>
|
566
|
-
<item
|
566
|
+
<item eId="list0.b__list_1__item_ii">
|
567
567
|
<num>(ii)</num>
|
568
568
|
<p>item-b-ii</p>
|
569
569
|
</item>
|
570
570
|
</blockList>
|
571
571
|
</item>
|
572
|
-
<item
|
572
|
+
<item eId="list0.c">
|
573
573
|
<num>(c)</num>
|
574
|
-
<blockList
|
574
|
+
<blockList eId="list0.c__list_2">
|
575
575
|
<listIntroduction>item-c</listIntroduction>
|
576
|
-
<item
|
576
|
+
<item eId="list0.c__list_2__item_i">
|
577
577
|
<num>(i)</num>
|
578
578
|
<p>item-c-i</p>
|
579
579
|
</item>
|
580
|
-
<item
|
580
|
+
<item eId="list0.c__list_2__item_ii">
|
581
581
|
<num>(ii)</num>
|
582
582
|
<p>item-c-ii</p>
|
583
583
|
</item>
|
584
|
-
<item
|
584
|
+
<item eId="list0.c__list_2__item_iii">
|
585
585
|
<num>(iii)</num>
|
586
586
|
<p>item-c-iii</p>
|
587
587
|
</item>
|
@@ -596,20 +596,20 @@ XML
|
|
596
596
|
|
597
597
|
it 'should jump back up a level when finding (i) near (h)' do
|
598
598
|
doc = xml2doc(subsection(<<XML
|
599
|
-
<blockList
|
600
|
-
<item
|
599
|
+
<blockList eId="sec__10__subsec_1__list_1" renest="true">
|
600
|
+
<item eId="sec__10__subsec_1__list_1__item_h">
|
601
601
|
<num>(h)</num>
|
602
602
|
<p>foo</p>
|
603
603
|
</item>
|
604
|
-
<item
|
604
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
605
605
|
<num>(i)</num>
|
606
606
|
<p>item-i</p>
|
607
607
|
</item>
|
608
|
-
<item
|
608
|
+
<item eId="sec__10__subsec_1__list_1__item_ii">
|
609
609
|
<num>(ii)</num>
|
610
610
|
<p>item-ii</p>
|
611
611
|
</item>
|
612
|
-
<item
|
612
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
613
613
|
<num>(i)</num>
|
614
614
|
<p>item-i</p>
|
615
615
|
</item>
|
@@ -619,22 +619,22 @@ XML
|
|
619
619
|
|
620
620
|
subject.adjust_blocklists(doc)
|
621
621
|
doc.to_s.should == subsection(<<XML
|
622
|
-
<blockList
|
623
|
-
<item
|
622
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
623
|
+
<item eId="sec__10__subsec_1__list_1__item_h">
|
624
624
|
<num>(h)</num>
|
625
|
-
<blockList
|
625
|
+
<blockList eId="sec__10__subsec_1__list_1__item_h__list_1">
|
626
626
|
<listIntroduction>foo</listIntroduction>
|
627
|
-
<item
|
627
|
+
<item eId="sec__10__subsec_1__list_1__item_h__list_1__item_i">
|
628
628
|
<num>(i)</num>
|
629
629
|
<p>item-i</p>
|
630
630
|
</item>
|
631
|
-
<item
|
631
|
+
<item eId="sec__10__subsec_1__list_1__item_h__list_1__item_ii">
|
632
632
|
<num>(ii)</num>
|
633
633
|
<p>item-ii</p>
|
634
634
|
</item>
|
635
635
|
</blockList>
|
636
636
|
</item>
|
637
|
-
<item
|
637
|
+
<item eId="sec__10__subsec_1__list_1__item_i">
|
638
638
|
<num>(i)</num>
|
639
639
|
<p>item-i</p>
|
640
640
|
</item>
|
@@ -647,16 +647,16 @@ XML
|
|
647
647
|
|
648
648
|
it 'should handle dotted numbers correctly' do
|
649
649
|
doc = xml2doc(subsection(<<XML
|
650
|
-
<blockList
|
651
|
-
<item
|
650
|
+
<blockList eId="sec__9__item_subsection-2__list_3" renest="true">
|
651
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1">
|
652
652
|
<num>9.2.1</num>
|
653
653
|
<p>is incapable of trading because of an illness, provided that:</p>
|
654
654
|
</item>
|
655
|
-
<item
|
655
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1-1">
|
656
656
|
<num>9.2.1.1</num>
|
657
657
|
<p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
|
658
658
|
</item>
|
659
|
-
<item
|
659
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1-2">
|
660
660
|
<num>9.2.1.2</num>
|
661
661
|
<p>the dependent or assistant is only permitted to replace the permit-</p>
|
662
662
|
</item>
|
@@ -666,16 +666,16 @@ XML
|
|
666
666
|
|
667
667
|
subject.adjust_blocklists(doc)
|
668
668
|
doc.to_s.should == subsection(<<XML
|
669
|
-
<blockList
|
670
|
-
<item
|
669
|
+
<blockList eId="sec__9__item_subsection-2__list_3">
|
670
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1">
|
671
671
|
<num>9.2.1</num>
|
672
|
-
<blockList
|
672
|
+
<blockList eId="sec__9__item_subsection-2__list_3__item_9-2-1__list_1">
|
673
673
|
<listIntroduction>is incapable of trading because of an illness, provided that:</listIntroduction>
|
674
|
-
<item
|
674
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1__list_1__item_9-2-1-1">
|
675
675
|
<num>9.2.1.1</num>
|
676
676
|
<p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
|
677
677
|
</item>
|
678
|
-
<item
|
678
|
+
<item eId="sec__9__item_subsection-2__list_3__item_9-2-1__list_1__item_9-2-1-2">
|
679
679
|
<num>9.2.1.2</num>
|
680
680
|
<p>the dependent or assistant is only permitted to replace the permit-</p>
|
681
681
|
</item>
|
@@ -689,8 +689,8 @@ XML
|
|
689
689
|
it 'should handle p tags just before' do
|
690
690
|
doc = xml2doc(subsection(<<XML
|
691
691
|
<p>intro</p>
|
692
|
-
<blockList
|
693
|
-
<item
|
692
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
693
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
694
694
|
<num>(a)</num>
|
695
695
|
<p>foo</p>
|
696
696
|
</item>
|
@@ -700,9 +700,9 @@ XML
|
|
700
700
|
|
701
701
|
subject.adjust_blocklists(doc)
|
702
702
|
doc.to_s.should == subsection(<<XML
|
703
|
-
<blockList
|
703
|
+
<blockList eId="sec__10__subsec_1__list_1">
|
704
704
|
<listIntroduction>intro</listIntroduction>
|
705
|
-
<item
|
705
|
+
<item eId="sec__10__subsec_1__list_1__item_a">
|
706
706
|
<num>(a)</num>
|
707
707
|
<p>foo</p>
|
708
708
|
</item>
|
@@ -711,4 +711,4 @@ XML
|
|
711
711
|
)
|
712
712
|
end
|
713
713
|
end
|
714
|
-
end
|
714
|
+
end
|