slaw 9.2.0 → 10.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/README.md +27 -1
- data/bin/slaw +7 -1
- data/lib/slaw/extract/extractor.rb +2 -9
- data/lib/slaw/grammars/counters.rb +34 -5
- data/lib/slaw/grammars/inlines.treetop +13 -1
- data/lib/slaw/grammars/inlines_nodes.rb +20 -0
- data/lib/slaw/grammars/schedules_nodes.rb +11 -14
- data/lib/slaw/grammars/tables_nodes.rb +3 -1
- data/lib/slaw/grammars/za/act_nodes.rb +34 -32
- data/lib/slaw/grammars/za/act_text.xsl +18 -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/slaw.gemspec +0 -1
- data/spec/counters_spec.rb +38 -0
- 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 +266 -266
- data/spec/za/act_inline_spec.rb +93 -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 +8 -19
data/spec/za/act_inline_spec.rb
CHANGED
@@ -61,31 +61,31 @@ describe Slaw::ActGenerator do
|
|
61
61
|
node = parse :generic_container, <<EOS
|
62
62
|
[[Section 2 amended by Act 23 of 2004]]
|
63
63
|
EOS
|
64
|
-
to_xml(node, "").should == '<
|
64
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
65
65
|
<content>
|
66
66
|
<p>
|
67
67
|
<remark status="editorial">[Section 2 amended by Act 23 of 2004]</remark>
|
68
68
|
</p>
|
69
69
|
</content>
|
70
|
-
</
|
70
|
+
</hcontainer>'
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'should handle an inline remark at the end of a sentence' do
|
74
74
|
node = parse :generic_container, <<EOS
|
75
75
|
This statement has an inline remark. [[Section 2 amended by Act 23 of 2004]]
|
76
76
|
EOS
|
77
|
-
to_xml(node, "").should == '<
|
77
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
78
78
|
<content>
|
79
79
|
<p>This statement has an inline remark. <remark status="editorial">[Section 2 amended by Act 23 of 2004]</remark></p>
|
80
80
|
</content>
|
81
|
-
</
|
81
|
+
</hcontainer>'
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'should handle an inline remark mid-way through' do
|
85
85
|
node = parse :subsection, <<EOS
|
86
86
|
(1) This statement has an inline remark. [[Section 2 amended by Act 23 of 2004]] And now some more.
|
87
87
|
EOS
|
88
|
-
to_xml(node, "", 1).should == '<subsection
|
88
|
+
to_xml(node, "", 1).should == '<subsection eId="subsec_1">
|
89
89
|
<num>(1)</num>
|
90
90
|
<content>
|
91
91
|
<p>This statement has an inline remark. <remark status="editorial">[Section 2 amended by Act 23 of 2004]</remark> And now some more.</p>
|
@@ -97,11 +97,11 @@ EOS
|
|
97
97
|
node = parse :generic_container, <<EOS
|
98
98
|
This statement has an inline remark. [[Section 2 amended by Act 23 of 2004]]. And now some more. [[Another remark]] [[and another]]
|
99
99
|
EOS
|
100
|
-
to_xml(node, "").should == '<
|
100
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
101
101
|
<content>
|
102
102
|
<p>This statement has an inline remark. <remark status="editorial">[Section 2 amended by Act 23 of 2004]</remark>. And now some more. <remark status="editorial">[Another remark]</remark> <remark status="editorial">[and another]</remark></p>
|
103
103
|
</content>
|
104
|
-
</
|
104
|
+
</hcontainer>'
|
105
105
|
end
|
106
106
|
|
107
107
|
it 'should handle a remark in a section' do
|
@@ -111,17 +111,17 @@ EOS
|
|
111
111
|
|
112
112
|
[[Section 1 amended by Act 23 of 2004]]
|
113
113
|
EOS
|
114
|
-
to_xml(node).should == '<section
|
114
|
+
to_xml(node).should == '<section eId="sec_1">
|
115
115
|
<num>1.</num>
|
116
116
|
<heading>Section title</heading>
|
117
|
-
<
|
117
|
+
<hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
|
118
118
|
<content>
|
119
119
|
<p>Some text is a long line.</p>
|
120
120
|
<p>
|
121
121
|
<remark status="editorial">[Section 1 amended by Act 23 of 2004]</remark>
|
122
122
|
</p>
|
123
123
|
</content>
|
124
|
-
</
|
124
|
+
</hcontainer>
|
125
125
|
</section>'
|
126
126
|
end
|
127
127
|
|
@@ -133,20 +133,20 @@ EOS
|
|
133
133
|
(1) something
|
134
134
|
(a) with a remark [[Section 1 amended by Act 23 of 2004]]
|
135
135
|
EOS
|
136
|
-
to_xml(node).should == '<section
|
136
|
+
to_xml(node).should == '<section eId="sec_1">
|
137
137
|
<num>1.</num>
|
138
138
|
<heading>Section title</heading>
|
139
|
-
<
|
139
|
+
<hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
|
140
140
|
<content>
|
141
141
|
<p>Some text is a long line.</p>
|
142
142
|
</content>
|
143
|
-
</
|
144
|
-
<subsection
|
143
|
+
</hcontainer>
|
144
|
+
<subsection eId="sec_1__subsec_1">
|
145
145
|
<num>(1)</num>
|
146
146
|
<content>
|
147
147
|
<p>something</p>
|
148
|
-
<blockList
|
149
|
-
<item
|
148
|
+
<blockList eId="sec_1__subsec_1__list_1" renest="true">
|
149
|
+
<item eId="sec_1__subsec_1__list_1__item_a">
|
150
150
|
<num>(a)</num>
|
151
151
|
<p>with a remark <remark status="editorial">[Section 1 amended by Act 23 of 2004]</remark></p>
|
152
152
|
</item>
|
@@ -167,12 +167,14 @@ EOS
|
|
167
167
|
EOS
|
168
168
|
|
169
169
|
today = Time.now.strftime('%Y-%m-%d')
|
170
|
-
to_xml(node, "").should == '<
|
171
|
-
<
|
170
|
+
to_xml(node, "").should == '<attachment eId="att_1">
|
171
|
+
<heading>Schedule 1</heading>
|
172
|
+
<subheading>A Title</subheading>
|
173
|
+
<doc name="schedule">
|
172
174
|
<meta>
|
173
175
|
<identification source="#slaw">
|
174
176
|
<FRBRWork>
|
175
|
-
<FRBRthis value="/za/act/1980/01
|
177
|
+
<FRBRthis value="/za/act/1980/01/!schedule1"/>
|
176
178
|
<FRBRuri value="/za/act/1980/01"/>
|
177
179
|
<FRBRalias value="Schedule 1"/>
|
178
180
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -180,14 +182,14 @@ EOS
|
|
180
182
|
<FRBRcountry value="za"/>
|
181
183
|
</FRBRWork>
|
182
184
|
<FRBRExpression>
|
183
|
-
<FRBRthis value="/za/act/1980/01/eng
|
185
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
184
186
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
185
187
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
186
188
|
<FRBRauthor href="#council"/>
|
187
189
|
<FRBRlanguage language="eng"/>
|
188
190
|
</FRBRExpression>
|
189
191
|
<FRBRManifestation>
|
190
|
-
<FRBRthis value="/za/act/1980/01/eng
|
192
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
191
193
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
192
194
|
<FRBRdate date="' + today + '" name="Generation"/>
|
193
195
|
<FRBRauthor href="#slaw"/>
|
@@ -195,32 +197,28 @@ EOS
|
|
195
197
|
</identification>
|
196
198
|
</meta>
|
197
199
|
<mainBody>
|
198
|
-
<hcontainer
|
199
|
-
<
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
</p>
|
206
|
-
<p>Some content</p>
|
207
|
-
</content>
|
208
|
-
</paragraph>
|
200
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
201
|
+
<content>
|
202
|
+
<p>
|
203
|
+
<remark status="editorial">[Schedule 1 added by Act 23 of 2004]</remark>
|
204
|
+
</p>
|
205
|
+
<p>Some content</p>
|
206
|
+
</content>
|
209
207
|
</hcontainer>
|
210
208
|
</mainBody>
|
211
209
|
</doc>
|
212
|
-
</
|
210
|
+
</attachment>'
|
213
211
|
end
|
214
212
|
|
215
213
|
it 'should handle other inline content' do
|
216
214
|
node = parse :generic_container, <<EOS
|
217
215
|
Remark [[with **bold** and //italics// and [a ref](/a/b)]].
|
218
216
|
EOS
|
219
|
-
to_xml(node, "").should == '<
|
217
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
220
218
|
<content>
|
221
219
|
<p>Remark <remark status="editorial">[with <b>bold</b> and <i>italics</i> and <ref href="/a/b">a ref</ref>]</remark>.</p>
|
222
220
|
</content>
|
223
|
-
</
|
221
|
+
</hcontainer>'
|
224
222
|
end
|
225
223
|
end
|
226
224
|
|
@@ -232,44 +230,44 @@ EOS
|
|
232
230
|
node = parse :generic_container, <<EOS
|
233
231
|
Hello [there](/za/act/123) friend.
|
234
232
|
EOS
|
235
|
-
to_xml(node, "").should == '<
|
233
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
236
234
|
<content>
|
237
235
|
<p>Hello <ref href="/za/act/123">there</ref> friend.</p>
|
238
236
|
</content>
|
239
|
-
</
|
237
|
+
</hcontainer>'
|
240
238
|
end
|
241
239
|
|
242
240
|
it 'should work many on a line' do
|
243
241
|
node = parse :generic_container, <<EOS
|
244
242
|
Hello [there](/za/act/123) friend [and](http://foo.bar.com/with space) you too.
|
245
243
|
EOS
|
246
|
-
to_xml(node, "").should == '<
|
244
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
247
245
|
<content>
|
248
246
|
<p>Hello <ref href="/za/act/123">there</ref> friend <ref href="http://foo.bar.com/with space">and</ref> you too.</p>
|
249
247
|
</content>
|
250
|
-
</
|
248
|
+
</hcontainer>'
|
251
249
|
end
|
252
250
|
|
253
251
|
it 'should handle brackets' do
|
254
252
|
node = parse :generic_container, <<EOS
|
255
253
|
Hello ([there](/za/act/123)).
|
256
254
|
EOS
|
257
|
-
to_xml(node, "").should == '<
|
255
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
258
256
|
<content>
|
259
257
|
<p>Hello (<ref href="/za/act/123">there</ref>).</p>
|
260
258
|
</content>
|
261
|
-
</
|
259
|
+
</hcontainer>'
|
262
260
|
end
|
263
261
|
|
264
262
|
it 'should handle many clauses on a line' do
|
265
263
|
node = parse :generic_container, <<EOS
|
266
264
|
Hello [there](/za/act/123)[[remark one]] my[friend](/za) [[remark 2]][end](/foo).
|
267
265
|
EOS
|
268
|
-
to_xml(node, "").should == '<
|
266
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
269
267
|
<content>
|
270
268
|
<p>Hello <ref href="/za/act/123">there</ref><remark status="editorial">[remark one]</remark> my<ref href="/za">friend</ref> <remark status="editorial">[remark 2]</remark><ref href="/foo">end</ref>.</p>
|
271
269
|
</content>
|
272
|
-
</
|
270
|
+
</hcontainer>'
|
273
271
|
end
|
274
272
|
|
275
273
|
it 'text should not cross end of line' do
|
@@ -278,12 +276,12 @@ EOS
|
|
278
276
|
|
279
277
|
my](/za/act/123) friend.
|
280
278
|
EOS
|
281
|
-
to_xml(node, "").should == '<
|
279
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
282
280
|
<content>
|
283
281
|
<p>Hello [there</p>
|
284
282
|
<p>my](/za/act/123) friend.</p>
|
285
283
|
</content>
|
286
|
-
</
|
284
|
+
</hcontainer>'
|
287
285
|
end
|
288
286
|
|
289
287
|
it 'href should not cross end of line' do
|
@@ -291,28 +289,28 @@ EOS
|
|
291
289
|
Hello [there](/za/act
|
292
290
|
/123) friend.
|
293
291
|
EOS
|
294
|
-
to_xml(node, "").should == '<
|
292
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
295
293
|
<content>
|
296
294
|
<p>Hello [there](/za/act</p>
|
297
295
|
<p>/123) friend.</p>
|
298
296
|
</content>
|
299
|
-
</
|
297
|
+
</hcontainer>'
|
300
298
|
end
|
301
299
|
|
302
300
|
it 'href should handle refs in a list' do
|
303
301
|
node = parse :generic_container, <<EOS
|
304
302
|
2.18.1 a traffic officer appointed in terms of section 3 of the Road Traffic [Act, No. 29 of 1989](/za/act/1989/29) or section 3A of the National Road Traffic [Act No. 93 of 1996](/za/act/1996/93) as the case may be;
|
305
303
|
EOS
|
306
|
-
to_xml(node, "").should == '<
|
304
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
307
305
|
<content>
|
308
|
-
<blockList
|
309
|
-
<item
|
306
|
+
<blockList eId="hcontainer_1__list_1" renest="true">
|
307
|
+
<item eId="hcontainer_1__list_1__item_2-18-1">
|
310
308
|
<num>2.18.1</num>
|
311
309
|
<p>a traffic officer appointed in terms of section 3 of the Road Traffic <ref href="/za/act/1989/29">Act, No. 29 of 1989</ref> or section 3A of the National Road Traffic <ref href="/za/act/1996/93">Act No. 93 of 1996</ref> as the case may be;</p>
|
312
310
|
</item>
|
313
311
|
</blockList>
|
314
312
|
</content>
|
315
|
-
</
|
313
|
+
</hcontainer>'
|
316
314
|
end
|
317
315
|
|
318
316
|
it 'should handle a link in an inline remark' do
|
@@ -321,13 +319,13 @@ EOS
|
|
321
319
|
This statement has [[[a link in](/foo/bar) a remark]]
|
322
320
|
This statement has [[a [link in a remark](/foo/bar)]]
|
323
321
|
EOS
|
324
|
-
to_xml(node, "").should == '<
|
322
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
325
323
|
<content>
|
326
324
|
<p>This statement has <remark status="editorial">[a <ref href="/foo/bar">link in</ref> a remark]</remark></p>
|
327
325
|
<p>This statement has <remark status="editorial">[<ref href="/foo/bar">a link in</ref> a remark]</remark></p>
|
328
326
|
<p>This statement has <remark status="editorial">[a <ref href="/foo/bar">link in a remark</ref>]</remark></p>
|
329
327
|
</content>
|
330
|
-
</
|
328
|
+
</hcontainer>'
|
331
329
|
end
|
332
330
|
end
|
333
331
|
|
@@ -339,22 +337,22 @@ EOS
|
|
339
337
|
node = parse :generic_container, <<EOS
|
340
338
|
Hello ![title](media/foo.png) friend.
|
341
339
|
EOS
|
342
|
-
to_xml(node, "").should == '<
|
340
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
343
341
|
<content>
|
344
342
|
<p>Hello <img src="media/foo.png" alt="title"/> friend.</p>
|
345
343
|
</content>
|
346
|
-
</
|
344
|
+
</hcontainer>'
|
347
345
|
end
|
348
346
|
|
349
347
|
it 'should work many on a line' do
|
350
348
|
node = parse :generic_container, <<EOS
|
351
349
|
Hello ![title](media/foo.png) friend and ![](media/bar.png) a second.
|
352
350
|
EOS
|
353
|
-
to_xml(node, "").should == '<
|
351
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
354
352
|
<content>
|
355
353
|
<p>Hello <img src="media/foo.png" alt="title"/> friend and <img src="media/bar.png"/> a second.</p>
|
356
354
|
</content>
|
357
|
-
</
|
355
|
+
</hcontainer>'
|
358
356
|
end
|
359
357
|
end
|
360
358
|
|
@@ -385,11 +383,11 @@ EOS
|
|
385
383
|
node = parse :generic_container, <<EOS
|
386
384
|
Hello **something bold** foo
|
387
385
|
EOS
|
388
|
-
to_xml(node, "").should == '<
|
386
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
389
387
|
<content>
|
390
388
|
<p>Hello <b>something bold</b> foo</p>
|
391
389
|
</content>
|
392
|
-
</
|
390
|
+
</hcontainer>'
|
393
391
|
end
|
394
392
|
|
395
393
|
it 'should handle complex bold' do
|
@@ -400,7 +398,7 @@ EOS
|
|
400
398
|
A **[link**](/a/b)**
|
401
399
|
A **[link**](/a/b)
|
402
400
|
EOS
|
403
|
-
to_xml(node, "").should == '<
|
401
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
404
402
|
<content>
|
405
403
|
<p>A <ref href="/a/b"><b>link</b></ref> with bold</p>
|
406
404
|
<p>This is <b>bold with <ref href="/a/b">a link</ref></b> end</p>
|
@@ -408,7 +406,7 @@ EOS
|
|
408
406
|
<p>A <b>[link</b>](/a/b)**</p>
|
409
407
|
<p>A **<ref href="/a/b">link**</ref></p>
|
410
408
|
</content>
|
411
|
-
</
|
409
|
+
</hcontainer>'
|
412
410
|
end
|
413
411
|
|
414
412
|
it 'should not mistake bold' do
|
@@ -423,7 +421,7 @@ EOS
|
|
423
421
|
* * foo * *
|
424
422
|
** foo * *
|
425
423
|
EOS
|
426
|
-
to_xml(node, "").should == '<
|
424
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
427
425
|
<content>
|
428
426
|
<p>Hello **something</p>
|
429
427
|
<p>New line**</p>
|
@@ -435,7 +433,7 @@ EOS
|
|
435
433
|
<p>* * foo * *</p>
|
436
434
|
<p>** foo * *</p>
|
437
435
|
</content>
|
438
|
-
</
|
436
|
+
</hcontainer>'
|
439
437
|
end
|
440
438
|
end
|
441
439
|
|
@@ -444,11 +442,11 @@ EOS
|
|
444
442
|
node = parse :generic_container, <<EOS
|
445
443
|
Hello //something italics// foo
|
446
444
|
EOS
|
447
|
-
to_xml(node, "").should == '<
|
445
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
448
446
|
<content>
|
449
447
|
<p>Hello <i>something italics</i> foo</p>
|
450
448
|
</content>
|
451
|
-
</
|
449
|
+
</hcontainer>'
|
452
450
|
end
|
453
451
|
|
454
452
|
it 'should handle complex italics' do
|
@@ -460,7 +458,7 @@ EOS
|
|
460
458
|
A //[link//](/a/b)//
|
461
459
|
A //[link//](/a/b)
|
462
460
|
EOS
|
463
|
-
to_xml(node, "").should == '<
|
461
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
464
462
|
<content>
|
465
463
|
<p>A <ref href="/a/b"><i>link</i></ref> with italics</p>
|
466
464
|
<p>This is <i>italics with <ref href="/a/b">a link</ref></i> end</p>
|
@@ -469,7 +467,7 @@ EOS
|
|
469
467
|
<p>A <i>[link</i>](/a/b)//</p>
|
470
468
|
<p>A //<ref href="/a/b">link//</ref></p>
|
471
469
|
</content>
|
472
|
-
</
|
470
|
+
</hcontainer>'
|
473
471
|
end
|
474
472
|
|
475
473
|
it 'should not mistake italics' do
|
@@ -484,7 +482,7 @@ EOS
|
|
484
482
|
/ / foo / /
|
485
483
|
// foo / /
|
486
484
|
EOS
|
487
|
-
to_xml(node, "").should == '<
|
485
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
488
486
|
<content>
|
489
487
|
<p>Hello //something</p>
|
490
488
|
<p>New line//</p>
|
@@ -496,7 +494,33 @@ EOS
|
|
496
494
|
<p>/ / foo / /</p>
|
497
495
|
<p>// foo / /</p>
|
498
496
|
</content>
|
499
|
-
</
|
497
|
+
</hcontainer>'
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
501
|
+
describe 'superscript' do
|
502
|
+
it 'should handle superscript' do
|
503
|
+
node = parse :generic_container, <<EOS
|
504
|
+
Hello ^^super **bold** ^^ foo
|
505
|
+
EOS
|
506
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
507
|
+
<content>
|
508
|
+
<p>Hello <sup>super <b>bold</b> </sup> foo</p>
|
509
|
+
</content>
|
510
|
+
</hcontainer>'
|
511
|
+
end
|
512
|
+
end
|
513
|
+
|
514
|
+
describe 'subscript' do
|
515
|
+
it 'should handle subscript' do
|
516
|
+
node = parse :generic_container, <<EOS
|
517
|
+
Hello _^sub **bold** ^_ foo
|
518
|
+
EOS
|
519
|
+
to_xml(node, "").should == '<hcontainer eId="hcontainer_1" name="hcontainer">
|
520
|
+
<content>
|
521
|
+
<p>Hello <sub>sub <b>bold</b> </sub> foo</p>
|
522
|
+
</content>
|
523
|
+
</hcontainer>'
|
500
524
|
end
|
501
525
|
end
|
502
526
|
|
@@ -57,13 +57,15 @@ EOS
|
|
57
57
|
s = to_xml(node)
|
58
58
|
today = Time.now.strftime('%Y-%m-%d')
|
59
59
|
s.should == <<EOS
|
60
|
-
<
|
61
|
-
<
|
62
|
-
<
|
60
|
+
<attachments>
|
61
|
+
<attachment eId="att_1">
|
62
|
+
<heading>Schedule 2</heading>
|
63
|
+
<subheading>A Title</subheading>
|
64
|
+
<doc name="schedule">
|
63
65
|
<meta>
|
64
66
|
<identification source="#slaw">
|
65
67
|
<FRBRWork>
|
66
|
-
<FRBRthis value="/za/act/1980/01
|
68
|
+
<FRBRthis value="/za/act/1980/01/!schedule2"/>
|
67
69
|
<FRBRuri value="/za/act/1980/01"/>
|
68
70
|
<FRBRalias value="Schedule 2"/>
|
69
71
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -71,14 +73,14 @@ EOS
|
|
71
73
|
<FRBRcountry value="za"/>
|
72
74
|
</FRBRWork>
|
73
75
|
<FRBRExpression>
|
74
|
-
<FRBRthis value="/za/act/1980/01/eng
|
76
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule2"/>
|
75
77
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
76
78
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
77
79
|
<FRBRauthor href="#council"/>
|
78
80
|
<FRBRlanguage language="eng"/>
|
79
81
|
</FRBRExpression>
|
80
82
|
<FRBRManifestation>
|
81
|
-
<FRBRthis value="/za/act/1980/01/eng
|
83
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule2"/>
|
82
84
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
83
85
|
<FRBRdate date="#{today}" name="Generation"/>
|
84
86
|
<FRBRauthor href="#slaw"/>
|
@@ -86,27 +88,25 @@ EOS
|
|
86
88
|
</identification>
|
87
89
|
</meta>
|
88
90
|
<mainBody>
|
89
|
-
<
|
90
|
-
<
|
91
|
-
<
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
</
|
96
|
-
|
97
|
-
<num>2.</num>
|
98
|
-
<heading>Bar</heading>
|
99
|
-
</section>
|
100
|
-
</hcontainer>
|
91
|
+
<section eId="sec_1">
|
92
|
+
<num>1.</num>
|
93
|
+
<heading>Foo</heading>
|
94
|
+
</section>
|
95
|
+
<section eId="sec_2">
|
96
|
+
<num>2.</num>
|
97
|
+
<heading>Bar</heading>
|
98
|
+
</section>
|
101
99
|
</mainBody>
|
102
100
|
</doc>
|
103
|
-
</
|
104
|
-
<
|
105
|
-
<
|
101
|
+
</attachment>
|
102
|
+
<attachment eId="att_2">
|
103
|
+
<heading>Schedule 3</heading>
|
104
|
+
<subheading>Another Title</subheading>
|
105
|
+
<doc name="schedule">
|
106
106
|
<meta>
|
107
107
|
<identification source="#slaw">
|
108
108
|
<FRBRWork>
|
109
|
-
<FRBRthis value="/za/act/1980/01
|
109
|
+
<FRBRthis value="/za/act/1980/01/!schedule3"/>
|
110
110
|
<FRBRuri value="/za/act/1980/01"/>
|
111
111
|
<FRBRalias value="Schedule 3"/>
|
112
112
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -114,14 +114,14 @@ EOS
|
|
114
114
|
<FRBRcountry value="za"/>
|
115
115
|
</FRBRWork>
|
116
116
|
<FRBRExpression>
|
117
|
-
<FRBRthis value="/za/act/1980/01/eng
|
117
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule3"/>
|
118
118
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
119
119
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
120
120
|
<FRBRauthor href="#council"/>
|
121
121
|
<FRBRlanguage language="eng"/>
|
122
122
|
</FRBRExpression>
|
123
123
|
<FRBRManifestation>
|
124
|
-
<FRBRthis value="/za/act/1980/01/eng
|
124
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule3"/>
|
125
125
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
126
126
|
<FRBRdate date="#{today}" name="Generation"/>
|
127
127
|
<FRBRauthor href="#slaw"/>
|
@@ -129,20 +129,16 @@ EOS
|
|
129
129
|
</identification>
|
130
130
|
</meta>
|
131
131
|
<mainBody>
|
132
|
-
<hcontainer
|
133
|
-
<
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
<p>Baz</p>
|
138
|
-
<p>Boom</p>
|
139
|
-
</content>
|
140
|
-
</paragraph>
|
132
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
133
|
+
<content>
|
134
|
+
<p>Baz</p>
|
135
|
+
<p>Boom</p>
|
136
|
+
</content>
|
141
137
|
</hcontainer>
|
142
138
|
</mainBody>
|
143
139
|
</doc>
|
144
|
-
</
|
145
|
-
</
|
140
|
+
</attachment>
|
141
|
+
</attachments>
|
146
142
|
EOS
|
147
143
|
.strip
|
148
144
|
|
@@ -160,12 +156,14 @@ Subject to approval in terms of this By-Law, the erection:
|
|
160
156
|
EOS
|
161
157
|
s = to_xml(node)
|
162
158
|
today = Time.now.strftime('%Y-%m-%d')
|
163
|
-
s.should == '<
|
164
|
-
<
|
159
|
+
s.should == '<attachment eId="att_1">
|
160
|
+
<heading>First Schedule</heading>
|
161
|
+
<subheading>Schedule Heading</subheading>
|
162
|
+
<doc name="schedule">
|
165
163
|
<meta>
|
166
164
|
<identification source="#slaw">
|
167
165
|
<FRBRWork>
|
168
|
-
<FRBRthis value="/za/act/1980/01
|
166
|
+
<FRBRthis value="/za/act/1980/01/!firstschedule"/>
|
169
167
|
<FRBRuri value="/za/act/1980/01"/>
|
170
168
|
<FRBRalias value="First Schedule"/>
|
171
169
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -173,14 +171,14 @@ EOS
|
|
173
171
|
<FRBRcountry value="za"/>
|
174
172
|
</FRBRWork>
|
175
173
|
<FRBRExpression>
|
176
|
-
<FRBRthis value="/za/act/1980/01/eng
|
174
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
177
175
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
178
176
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
179
177
|
<FRBRauthor href="#council"/>
|
180
178
|
<FRBRlanguage language="eng"/>
|
181
179
|
</FRBRExpression>
|
182
180
|
<FRBRManifestation>
|
183
|
-
<FRBRthis value="/za/act/1980/01/eng
|
181
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
184
182
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
185
183
|
<FRBRdate date="' + today + '" name="Generation"/>
|
186
184
|
<FRBRauthor href="#slaw"/>
|
@@ -188,26 +186,22 @@ EOS
|
|
188
186
|
</identification>
|
189
187
|
</meta>
|
190
188
|
<mainBody>
|
191
|
-
<hcontainer
|
192
|
-
<
|
193
|
-
|
194
|
-
|
195
|
-
<content>
|
196
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
197
|
-
</content>
|
198
|
-
</paragraph>
|
199
|
-
<section id="section-1">
|
200
|
-
<num>1.</num>
|
201
|
-
<heading>Foo</heading>
|
202
|
-
</section>
|
203
|
-
<section id="section-2">
|
204
|
-
<num>2.</num>
|
205
|
-
<heading>Bar</heading>
|
206
|
-
</section>
|
189
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
190
|
+
<content>
|
191
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
192
|
+
</content>
|
207
193
|
</hcontainer>
|
194
|
+
<section eId="sec_1">
|
195
|
+
<num>1.</num>
|
196
|
+
<heading>Foo</heading>
|
197
|
+
</section>
|
198
|
+
<section eId="sec_2">
|
199
|
+
<num>2.</num>
|
200
|
+
<heading>Bar</heading>
|
201
|
+
</section>
|
208
202
|
</mainBody>
|
209
203
|
</doc>
|
210
|
-
</
|
204
|
+
</attachment>'
|
211
205
|
end
|
212
206
|
|
213
207
|
it 'should handle a schedule with dot in the number' do
|
@@ -222,12 +216,14 @@ Subject to approval in terms of this By-Law, the erection:
|
|
222
216
|
EOS
|
223
217
|
s = to_xml(node)
|
224
218
|
today = Time.now.strftime('%Y-%m-%d')
|
225
|
-
s.should == '<
|
226
|
-
<
|
219
|
+
s.should == '<attachment eId="att_1">
|
220
|
+
<heading>1. First Schedule</heading>
|
221
|
+
<subheading>Schedule Heading</subheading>
|
222
|
+
<doc name="schedule">
|
227
223
|
<meta>
|
228
224
|
<identification source="#slaw">
|
229
225
|
<FRBRWork>
|
230
|
-
<FRBRthis value="/za/act/1980/01
|
226
|
+
<FRBRthis value="/za/act/1980/01/!1firstschedule"/>
|
231
227
|
<FRBRuri value="/za/act/1980/01"/>
|
232
228
|
<FRBRalias value="1. First Schedule"/>
|
233
229
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -235,14 +231,14 @@ EOS
|
|
235
231
|
<FRBRcountry value="za"/>
|
236
232
|
</FRBRWork>
|
237
233
|
<FRBRExpression>
|
238
|
-
<FRBRthis value="/za/act/1980/01/eng
|
234
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
239
235
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
240
236
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
241
237
|
<FRBRauthor href="#council"/>
|
242
238
|
<FRBRlanguage language="eng"/>
|
243
239
|
</FRBRExpression>
|
244
240
|
<FRBRManifestation>
|
245
|
-
<FRBRthis value="/za/act/1980/01/eng
|
241
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
246
242
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
247
243
|
<FRBRdate date="' + today + '" name="Generation"/>
|
248
244
|
<FRBRauthor href="#slaw"/>
|
@@ -250,26 +246,22 @@ EOS
|
|
250
246
|
</identification>
|
251
247
|
</meta>
|
252
248
|
<mainBody>
|
253
|
-
<hcontainer
|
254
|
-
<
|
255
|
-
|
256
|
-
|
257
|
-
<content>
|
258
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
259
|
-
</content>
|
260
|
-
</paragraph>
|
261
|
-
<section id="section-1">
|
262
|
-
<num>1.</num>
|
263
|
-
<heading>Foo</heading>
|
264
|
-
</section>
|
265
|
-
<section id="section-2">
|
266
|
-
<num>2.</num>
|
267
|
-
<heading>Bar</heading>
|
268
|
-
</section>
|
249
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
250
|
+
<content>
|
251
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
252
|
+
</content>
|
269
253
|
</hcontainer>
|
254
|
+
<section eId="sec_1">
|
255
|
+
<num>1.</num>
|
256
|
+
<heading>Foo</heading>
|
257
|
+
</section>
|
258
|
+
<section eId="sec_2">
|
259
|
+
<num>2.</num>
|
260
|
+
<heading>Bar</heading>
|
261
|
+
</section>
|
270
262
|
</mainBody>
|
271
263
|
</doc>
|
272
|
-
</
|
264
|
+
</attachment>'
|
273
265
|
end
|
274
266
|
|
275
267
|
it 'should handle a schedule with a title' do
|
@@ -283,12 +275,13 @@ Subject to approval in terms of this By-Law, the erection:
|
|
283
275
|
EOS
|
284
276
|
s = to_xml(node)
|
285
277
|
today = Time.now.strftime('%Y-%m-%d')
|
286
|
-
s.should == '<
|
287
|
-
<
|
278
|
+
s.should == '<attachment eId="att_1">
|
279
|
+
<heading>First Schedule</heading>
|
280
|
+
<doc name="schedule">
|
288
281
|
<meta>
|
289
282
|
<identification source="#slaw">
|
290
283
|
<FRBRWork>
|
291
|
-
<FRBRthis value="/za/act/1980/01
|
284
|
+
<FRBRthis value="/za/act/1980/01/!firstschedule"/>
|
292
285
|
<FRBRuri value="/za/act/1980/01"/>
|
293
286
|
<FRBRalias value="First Schedule"/>
|
294
287
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -296,14 +289,14 @@ EOS
|
|
296
289
|
<FRBRcountry value="za"/>
|
297
290
|
</FRBRWork>
|
298
291
|
<FRBRExpression>
|
299
|
-
<FRBRthis value="/za/act/1980/01/eng
|
292
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
300
293
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
301
294
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
302
295
|
<FRBRauthor href="#council"/>
|
303
296
|
<FRBRlanguage language="eng"/>
|
304
297
|
</FRBRExpression>
|
305
298
|
<FRBRManifestation>
|
306
|
-
<FRBRthis value="/za/act/1980/01/eng
|
299
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
307
300
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
308
301
|
<FRBRdate date="' + today + '" name="Generation"/>
|
309
302
|
<FRBRauthor href="#slaw"/>
|
@@ -311,25 +304,22 @@ EOS
|
|
311
304
|
</identification>
|
312
305
|
</meta>
|
313
306
|
<mainBody>
|
314
|
-
<hcontainer
|
315
|
-
<
|
316
|
-
|
317
|
-
|
318
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
319
|
-
</content>
|
320
|
-
</paragraph>
|
321
|
-
<section id="section-1">
|
322
|
-
<num>1.</num>
|
323
|
-
<heading>Foo</heading>
|
324
|
-
</section>
|
325
|
-
<section id="section-2">
|
326
|
-
<num>2.</num>
|
327
|
-
<heading>Bar</heading>
|
328
|
-
</section>
|
307
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
308
|
+
<content>
|
309
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
310
|
+
</content>
|
329
311
|
</hcontainer>
|
312
|
+
<section eId="sec_1">
|
313
|
+
<num>1.</num>
|
314
|
+
<heading>Foo</heading>
|
315
|
+
</section>
|
316
|
+
<section eId="sec_2">
|
317
|
+
<num>2.</num>
|
318
|
+
<heading>Bar</heading>
|
319
|
+
</section>
|
330
320
|
</mainBody>
|
331
321
|
</doc>
|
332
|
-
</
|
322
|
+
</attachment>'
|
333
323
|
end
|
334
324
|
|
335
325
|
it 'should support rich parts, chapters and sections in a schedule' do
|
@@ -352,12 +342,14 @@ EOS
|
|
352
342
|
s = to_xml(node)
|
353
343
|
today = Time.now.strftime('%Y-%m-%d')
|
354
344
|
s.should == <<EOS
|
355
|
-
<
|
356
|
-
<
|
345
|
+
<attachment eId="att_1">
|
346
|
+
<heading>Schedule 1</heading>
|
347
|
+
<subheading>Forms</subheading>
|
348
|
+
<doc name="schedule">
|
357
349
|
<meta>
|
358
350
|
<identification source="#slaw">
|
359
351
|
<FRBRWork>
|
360
|
-
<FRBRthis value="/za/act/1980/01
|
352
|
+
<FRBRthis value="/za/act/1980/01/!schedule1"/>
|
361
353
|
<FRBRuri value="/za/act/1980/01"/>
|
362
354
|
<FRBRalias value="Schedule 1"/>
|
363
355
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -365,14 +357,14 @@ EOS
|
|
365
357
|
<FRBRcountry value="za"/>
|
366
358
|
</FRBRWork>
|
367
359
|
<FRBRExpression>
|
368
|
-
<FRBRthis value="/za/act/1980/01/eng
|
360
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
369
361
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
370
362
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
371
363
|
<FRBRauthor href="#council"/>
|
372
364
|
<FRBRlanguage language="eng"/>
|
373
365
|
</FRBRExpression>
|
374
366
|
<FRBRManifestation>
|
375
|
-
<FRBRthis value="/za/act/1980/01/eng
|
367
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
376
368
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
377
369
|
<FRBRdate date="#{today}" name="Generation"/>
|
378
370
|
<FRBRauthor href="#slaw"/>
|
@@ -380,31 +372,27 @@ EOS
|
|
380
372
|
</identification>
|
381
373
|
</meta>
|
382
374
|
<mainBody>
|
383
|
-
<
|
384
|
-
<
|
385
|
-
<
|
386
|
-
<
|
387
|
-
<
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
<
|
396
|
-
<
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
</content>
|
402
|
-
</paragraph>
|
403
|
-
</part>
|
404
|
-
</hcontainer>
|
375
|
+
<part eId="part_I">
|
376
|
+
<num>I</num>
|
377
|
+
<heading>Form of authentication statement</heading>
|
378
|
+
<hcontainer eId="part_I__hcontainer_1" name="hcontainer">
|
379
|
+
<content>
|
380
|
+
<p>This printed impression has been carefully compared by me with the bill which was passed by Parliament and found by me to be a true copy of the bill.</p>
|
381
|
+
</content>
|
382
|
+
</hcontainer>
|
383
|
+
</part>
|
384
|
+
<part eId="part_II">
|
385
|
+
<num>II</num>
|
386
|
+
<heading>Form of statement of the President’s assent.</heading>
|
387
|
+
<hcontainer eId="part_II__hcontainer_1" name="hcontainer">
|
388
|
+
<content>
|
389
|
+
<p>I signify my assent to the bill and a whole bunch of other stuff.</p>
|
390
|
+
</content>
|
391
|
+
</hcontainer>
|
392
|
+
</part>
|
405
393
|
</mainBody>
|
406
394
|
</doc>
|
407
|
-
</
|
395
|
+
</attachment>
|
408
396
|
EOS
|
409
397
|
.strip
|
410
398
|
end
|
@@ -430,12 +418,13 @@ More stuff
|
|
430
418
|
EOS
|
431
419
|
s = to_xml(node)
|
432
420
|
today = Time.now.strftime('%Y-%m-%d')
|
433
|
-
s.should == '<
|
421
|
+
s.should == '<attachment eId="att_1">
|
422
|
+
<heading>Schedule</heading>
|
434
423
|
<doc name="schedule">
|
435
424
|
<meta>
|
436
425
|
<identification source="#slaw">
|
437
426
|
<FRBRWork>
|
438
|
-
<FRBRthis value="/za/act/1980/01
|
427
|
+
<FRBRthis value="/za/act/1980/01/!schedule"/>
|
439
428
|
<FRBRuri value="/za/act/1980/01"/>
|
440
429
|
<FRBRalias value="Schedule"/>
|
441
430
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -443,14 +432,14 @@ EOS
|
|
443
432
|
<FRBRcountry value="za"/>
|
444
433
|
</FRBRWork>
|
445
434
|
<FRBRExpression>
|
446
|
-
<FRBRthis value="/za/act/1980/01/eng
|
435
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
447
436
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
448
437
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
449
438
|
<FRBRauthor href="#council"/>
|
450
439
|
<FRBRlanguage language="eng"/>
|
451
440
|
</FRBRExpression>
|
452
441
|
<FRBRManifestation>
|
453
|
-
<FRBRthis value="/za/act/1980/01/eng
|
442
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
454
443
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
455
444
|
<FRBRdate date="' + today + '" name="Generation"/>
|
456
445
|
<FRBRauthor href="#slaw"/>
|
@@ -458,19 +447,16 @@ EOS
|
|
458
447
|
</identification>
|
459
448
|
</meta>
|
460
449
|
<mainBody>
|
461
|
-
<hcontainer
|
462
|
-
<
|
463
|
-
|
464
|
-
<
|
465
|
-
|
466
|
-
|
467
|
-
<p>More stuff</p>
|
468
|
-
</content>
|
469
|
-
</paragraph>
|
450
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
451
|
+
<content>
|
452
|
+
<p>Subject to approval in terms of this By-Law.</p>
|
453
|
+
<p>Schedule another</p>
|
454
|
+
<p>More stuff</p>
|
455
|
+
</content>
|
470
456
|
</hcontainer>
|
471
457
|
</mainBody>
|
472
458
|
</doc>
|
473
|
-
</
|
459
|
+
</attachment>'
|
474
460
|
end
|
475
461
|
|
476
462
|
it 'should handle rich content in titles and subheandings' do
|
@@ -483,12 +469,14 @@ Subject to approval in terms of this By-Law.
|
|
483
469
|
EOS
|
484
470
|
s = to_xml(node)
|
485
471
|
today = Time.now.strftime('%Y-%m-%d')
|
486
|
-
s.should == '<
|
487
|
-
<
|
472
|
+
s.should == '<attachment eId="att_1">
|
473
|
+
<heading>First Schedule <remark status="editorial">[remark]</remark></heading>
|
474
|
+
<subheading>Subheading <remark status="editorial">[another]</remark></subheading>
|
475
|
+
<doc name="schedule">
|
488
476
|
<meta>
|
489
477
|
<identification source="#slaw">
|
490
478
|
<FRBRWork>
|
491
|
-
<FRBRthis value="/za/act/1980/01
|
479
|
+
<FRBRthis value="/za/act/1980/01/!firstschedule"/>
|
492
480
|
<FRBRuri value="/za/act/1980/01"/>
|
493
481
|
<FRBRalias value="First Schedule"/>
|
494
482
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -496,14 +484,14 @@ EOS
|
|
496
484
|
<FRBRcountry value="za"/>
|
497
485
|
</FRBRWork>
|
498
486
|
<FRBRExpression>
|
499
|
-
<FRBRthis value="/za/act/1980/01/eng
|
487
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
500
488
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
501
489
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
502
490
|
<FRBRauthor href="#council"/>
|
503
491
|
<FRBRlanguage language="eng"/>
|
504
492
|
</FRBRExpression>
|
505
493
|
<FRBRManifestation>
|
506
|
-
<FRBRthis value="/za/act/1980/01/eng
|
494
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
507
495
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
508
496
|
<FRBRdate date="' + today + '" name="Generation"/>
|
509
497
|
<FRBRauthor href="#slaw"/>
|
@@ -511,18 +499,14 @@ EOS
|
|
511
499
|
</identification>
|
512
500
|
</meta>
|
513
501
|
<mainBody>
|
514
|
-
<hcontainer
|
515
|
-
<
|
516
|
-
|
517
|
-
|
518
|
-
<content>
|
519
|
-
<p>Subject to approval in terms of this By-Law.</p>
|
520
|
-
</content>
|
521
|
-
</paragraph>
|
502
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
503
|
+
<content>
|
504
|
+
<p>Subject to approval in terms of this By-Law.</p>
|
505
|
+
</content>
|
522
506
|
</hcontainer>
|
523
507
|
</mainBody>
|
524
508
|
</doc>
|
525
|
-
</
|
509
|
+
</attachment>'
|
526
510
|
end
|
527
511
|
|
528
512
|
it 'should handle a schedule without a heading' do
|
@@ -536,12 +520,14 @@ Subject to approval in terms of this By-Law, the erection:
|
|
536
520
|
EOS
|
537
521
|
s = to_xml(node)
|
538
522
|
today = Time.now.strftime('%Y-%m-%d')
|
539
|
-
s.should == '<
|
523
|
+
s.should == '<attachment eId="att_1">
|
524
|
+
<heading>Schedule</heading>
|
525
|
+
<subheading>Subheading</subheading>
|
540
526
|
<doc name="schedule">
|
541
527
|
<meta>
|
542
528
|
<identification source="#slaw">
|
543
529
|
<FRBRWork>
|
544
|
-
<FRBRthis value="/za/act/1980/01
|
530
|
+
<FRBRthis value="/za/act/1980/01/!schedule"/>
|
545
531
|
<FRBRuri value="/za/act/1980/01"/>
|
546
532
|
<FRBRalias value="Schedule"/>
|
547
533
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -549,14 +535,14 @@ EOS
|
|
549
535
|
<FRBRcountry value="za"/>
|
550
536
|
</FRBRWork>
|
551
537
|
<FRBRExpression>
|
552
|
-
<FRBRthis value="/za/act/1980/01/eng
|
538
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
553
539
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
554
540
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
555
541
|
<FRBRauthor href="#council"/>
|
556
542
|
<FRBRlanguage language="eng"/>
|
557
543
|
</FRBRExpression>
|
558
544
|
<FRBRManifestation>
|
559
|
-
<FRBRthis value="/za/act/1980/01/eng
|
545
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
560
546
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
561
547
|
<FRBRdate date="' + today + '" name="Generation"/>
|
562
548
|
<FRBRauthor href="#slaw"/>
|
@@ -564,26 +550,22 @@ EOS
|
|
564
550
|
</identification>
|
565
551
|
</meta>
|
566
552
|
<mainBody>
|
567
|
-
<hcontainer
|
568
|
-
<
|
569
|
-
|
570
|
-
|
571
|
-
<content>
|
572
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
573
|
-
</content>
|
574
|
-
</paragraph>
|
575
|
-
<section id="section-1">
|
576
|
-
<num>1.</num>
|
577
|
-
<heading>Foo</heading>
|
578
|
-
</section>
|
579
|
-
<section id="section-2">
|
580
|
-
<num>2.</num>
|
581
|
-
<heading>Bar</heading>
|
582
|
-
</section>
|
553
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
554
|
+
<content>
|
555
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
556
|
+
</content>
|
583
557
|
</hcontainer>
|
558
|
+
<section eId="sec_1">
|
559
|
+
<num>1.</num>
|
560
|
+
<heading>Foo</heading>
|
561
|
+
</section>
|
562
|
+
<section eId="sec_2">
|
563
|
+
<num>2.</num>
|
564
|
+
<heading>Bar</heading>
|
565
|
+
</section>
|
584
566
|
</mainBody>
|
585
567
|
</doc>
|
586
|
-
</
|
568
|
+
</attachment>'
|
587
569
|
end
|
588
570
|
|
589
571
|
it 'should handle a schedule with an empty heading and subheading' do
|
@@ -597,12 +579,13 @@ Subject to approval in terms of this By-Law, the erection:
|
|
597
579
|
EOS
|
598
580
|
s = to_xml(node)
|
599
581
|
today = Time.now.strftime('%Y-%m-%d')
|
600
|
-
s.should == '<
|
582
|
+
s.should == '<attachment eId="att_1">
|
583
|
+
<heading>Schedule</heading>
|
601
584
|
<doc name="schedule">
|
602
585
|
<meta>
|
603
586
|
<identification source="#slaw">
|
604
587
|
<FRBRWork>
|
605
|
-
<FRBRthis value="/za/act/1980/01
|
588
|
+
<FRBRthis value="/za/act/1980/01/!schedule"/>
|
606
589
|
<FRBRuri value="/za/act/1980/01"/>
|
607
590
|
<FRBRalias value="Schedule"/>
|
608
591
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -610,14 +593,14 @@ EOS
|
|
610
593
|
<FRBRcountry value="za"/>
|
611
594
|
</FRBRWork>
|
612
595
|
<FRBRExpression>
|
613
|
-
<FRBRthis value="/za/act/1980/01/eng
|
596
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
614
597
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
615
598
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
616
599
|
<FRBRauthor href="#council"/>
|
617
600
|
<FRBRlanguage language="eng"/>
|
618
601
|
</FRBRExpression>
|
619
602
|
<FRBRManifestation>
|
620
|
-
<FRBRthis value="/za/act/1980/01/eng
|
603
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
621
604
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
622
605
|
<FRBRdate date="' + today + '" name="Generation"/>
|
623
606
|
<FRBRauthor href="#slaw"/>
|
@@ -625,21 +608,18 @@ EOS
|
|
625
608
|
</identification>
|
626
609
|
</meta>
|
627
610
|
<mainBody>
|
628
|
-
<hcontainer
|
629
|
-
<
|
630
|
-
|
631
|
-
|
632
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
633
|
-
</content>
|
634
|
-
</paragraph>
|
635
|
-
<section id="section-1">
|
636
|
-
<num>1.</num>
|
637
|
-
<heading>Foo</heading>
|
638
|
-
</section>
|
611
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
612
|
+
<content>
|
613
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
614
|
+
</content>
|
639
615
|
</hcontainer>
|
616
|
+
<section eId="sec_1">
|
617
|
+
<num>1.</num>
|
618
|
+
<heading>Foo</heading>
|
619
|
+
</section>
|
640
620
|
</mainBody>
|
641
621
|
</doc>
|
642
|
-
</
|
622
|
+
</attachment>'
|
643
623
|
end
|
644
624
|
|
645
625
|
end
|
@@ -656,12 +636,13 @@ Subject to approval in terms of this By-Law, the erection:
|
|
656
636
|
EOS
|
657
637
|
s = to_xml(node)
|
658
638
|
today = Time.now.strftime('%Y-%m-%d')
|
659
|
-
s.should == '<
|
639
|
+
s.should == '<attachment eId="att_1">
|
640
|
+
<heading>Schedule</heading>
|
660
641
|
<doc name="schedule">
|
661
642
|
<meta>
|
662
643
|
<identification source="#slaw">
|
663
644
|
<FRBRWork>
|
664
|
-
<FRBRthis value="/za/act/1980/01
|
645
|
+
<FRBRthis value="/za/act/1980/01/!schedule"/>
|
665
646
|
<FRBRuri value="/za/act/1980/01"/>
|
666
647
|
<FRBRalias value="Schedule"/>
|
667
648
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -669,14 +650,14 @@ EOS
|
|
669
650
|
<FRBRcountry value="za"/>
|
670
651
|
</FRBRWork>
|
671
652
|
<FRBRExpression>
|
672
|
-
<FRBRthis value="/za/act/1980/01/eng
|
653
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
673
654
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
674
655
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
675
656
|
<FRBRauthor href="#council"/>
|
676
657
|
<FRBRlanguage language="eng"/>
|
677
658
|
</FRBRExpression>
|
678
659
|
<FRBRManifestation>
|
679
|
-
<FRBRthis value="/za/act/1980/01/eng
|
660
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule"/>
|
680
661
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
681
662
|
<FRBRdate date="' + today + '" name="Generation"/>
|
682
663
|
<FRBRauthor href="#slaw"/>
|
@@ -684,25 +665,22 @@ EOS
|
|
684
665
|
</identification>
|
685
666
|
</meta>
|
686
667
|
<mainBody>
|
687
|
-
<hcontainer
|
688
|
-
<
|
689
|
-
|
690
|
-
|
691
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
692
|
-
</content>
|
693
|
-
</paragraph>
|
694
|
-
<section id="section-1">
|
695
|
-
<num>1.</num>
|
696
|
-
<heading>Foo</heading>
|
697
|
-
</section>
|
698
|
-
<section id="section-2">
|
699
|
-
<num>2.</num>
|
700
|
-
<heading>Bar</heading>
|
701
|
-
</section>
|
668
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
669
|
+
<content>
|
670
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
671
|
+
</content>
|
702
672
|
</hcontainer>
|
673
|
+
<section eId="sec_1">
|
674
|
+
<num>1.</num>
|
675
|
+
<heading>Foo</heading>
|
676
|
+
</section>
|
677
|
+
<section eId="sec_2">
|
678
|
+
<num>2.</num>
|
679
|
+
<heading>Bar</heading>
|
680
|
+
</section>
|
703
681
|
</mainBody>
|
704
682
|
</doc>
|
705
|
-
</
|
683
|
+
</attachment>'
|
706
684
|
end
|
707
685
|
|
708
686
|
it 'should serialise many schedules correctly' do
|
@@ -720,13 +698,15 @@ EOS
|
|
720
698
|
s = to_xml(node)
|
721
699
|
today = Time.now.strftime('%Y-%m-%d')
|
722
700
|
s.should == <<EOS
|
723
|
-
<
|
724
|
-
<
|
725
|
-
<
|
701
|
+
<attachments>
|
702
|
+
<attachment eId="att_1">
|
703
|
+
<heading>Schedule 2</heading>
|
704
|
+
<subheading>A Title</subheading>
|
705
|
+
<doc name="schedule">
|
726
706
|
<meta>
|
727
707
|
<identification source="#slaw">
|
728
708
|
<FRBRWork>
|
729
|
-
<FRBRthis value="/za/act/1980/01
|
709
|
+
<FRBRthis value="/za/act/1980/01/!schedule2"/>
|
730
710
|
<FRBRuri value="/za/act/1980/01"/>
|
731
711
|
<FRBRalias value="Schedule 2"/>
|
732
712
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -734,14 +714,14 @@ EOS
|
|
734
714
|
<FRBRcountry value="za"/>
|
735
715
|
</FRBRWork>
|
736
716
|
<FRBRExpression>
|
737
|
-
<FRBRthis value="/za/act/1980/01/eng
|
717
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule2"/>
|
738
718
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
739
719
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
740
720
|
<FRBRauthor href="#council"/>
|
741
721
|
<FRBRlanguage language="eng"/>
|
742
722
|
</FRBRExpression>
|
743
723
|
<FRBRManifestation>
|
744
|
-
<FRBRthis value="/za/act/1980/01/eng
|
724
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule2"/>
|
745
725
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
746
726
|
<FRBRdate date="#{today}" name="Generation"/>
|
747
727
|
<FRBRauthor href="#slaw"/>
|
@@ -749,27 +729,25 @@ EOS
|
|
749
729
|
</identification>
|
750
730
|
</meta>
|
751
731
|
<mainBody>
|
752
|
-
<
|
753
|
-
<
|
754
|
-
<
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
</
|
759
|
-
|
760
|
-
<num>2.</num>
|
761
|
-
<heading>Bar</heading>
|
762
|
-
</section>
|
763
|
-
</hcontainer>
|
732
|
+
<section eId="sec_1">
|
733
|
+
<num>1.</num>
|
734
|
+
<heading>Foo</heading>
|
735
|
+
</section>
|
736
|
+
<section eId="sec_2">
|
737
|
+
<num>2.</num>
|
738
|
+
<heading>Bar</heading>
|
739
|
+
</section>
|
764
740
|
</mainBody>
|
765
741
|
</doc>
|
766
|
-
</
|
767
|
-
<
|
768
|
-
<
|
742
|
+
</attachment>
|
743
|
+
<attachment eId="att_2">
|
744
|
+
<heading>Schedule 3</heading>
|
745
|
+
<subheading>Another Title</subheading>
|
746
|
+
<doc name="schedule">
|
769
747
|
<meta>
|
770
748
|
<identification source="#slaw">
|
771
749
|
<FRBRWork>
|
772
|
-
<FRBRthis value="/za/act/1980/01
|
750
|
+
<FRBRthis value="/za/act/1980/01/!schedule3"/>
|
773
751
|
<FRBRuri value="/za/act/1980/01"/>
|
774
752
|
<FRBRalias value="Schedule 3"/>
|
775
753
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -777,14 +755,14 @@ EOS
|
|
777
755
|
<FRBRcountry value="za"/>
|
778
756
|
</FRBRWork>
|
779
757
|
<FRBRExpression>
|
780
|
-
<FRBRthis value="/za/act/1980/01/eng
|
758
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule3"/>
|
781
759
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
782
760
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
783
761
|
<FRBRauthor href="#council"/>
|
784
762
|
<FRBRlanguage language="eng"/>
|
785
763
|
</FRBRExpression>
|
786
764
|
<FRBRManifestation>
|
787
|
-
<FRBRthis value="/za/act/1980/01/eng
|
765
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule3"/>
|
788
766
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
789
767
|
<FRBRdate date="#{today}" name="Generation"/>
|
790
768
|
<FRBRauthor href="#slaw"/>
|
@@ -792,20 +770,16 @@ EOS
|
|
792
770
|
</identification>
|
793
771
|
</meta>
|
794
772
|
<mainBody>
|
795
|
-
<hcontainer
|
796
|
-
<
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
<p>Baz</p>
|
801
|
-
<p>Boom</p>
|
802
|
-
</content>
|
803
|
-
</paragraph>
|
773
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
774
|
+
<content>
|
775
|
+
<p>Baz</p>
|
776
|
+
<p>Boom</p>
|
777
|
+
</content>
|
804
778
|
</hcontainer>
|
805
779
|
</mainBody>
|
806
780
|
</doc>
|
807
|
-
</
|
808
|
-
</
|
781
|
+
</attachment>
|
782
|
+
</attachments>
|
809
783
|
EOS
|
810
784
|
.strip
|
811
785
|
|
@@ -822,12 +796,14 @@ Subject to approval in terms of this By-Law, the erection:
|
|
822
796
|
EOS
|
823
797
|
s = to_xml(node)
|
824
798
|
today = Time.now.strftime('%Y-%m-%d')
|
825
|
-
s.should == '<
|
826
|
-
<
|
799
|
+
s.should == '<attachment eId="att_1">
|
800
|
+
<heading>1 - First Schedule</heading>
|
801
|
+
<subheading>Schedule Heading</subheading>
|
802
|
+
<doc name="schedule">
|
827
803
|
<meta>
|
828
804
|
<identification source="#slaw">
|
829
805
|
<FRBRWork>
|
830
|
-
<FRBRthis value="/za/act/1980/01
|
806
|
+
<FRBRthis value="/za/act/1980/01/!1firstschedule"/>
|
831
807
|
<FRBRuri value="/za/act/1980/01"/>
|
832
808
|
<FRBRalias value="1 - First Schedule"/>
|
833
809
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -835,14 +811,14 @@ EOS
|
|
835
811
|
<FRBRcountry value="za"/>
|
836
812
|
</FRBRWork>
|
837
813
|
<FRBRExpression>
|
838
|
-
<FRBRthis value="/za/act/1980/01/eng
|
814
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
839
815
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
840
816
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
841
817
|
<FRBRauthor href="#council"/>
|
842
818
|
<FRBRlanguage language="eng"/>
|
843
819
|
</FRBRExpression>
|
844
820
|
<FRBRManifestation>
|
845
|
-
<FRBRthis value="/za/act/1980/01/eng
|
821
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
846
822
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
847
823
|
<FRBRdate date="' + today + '" name="Generation"/>
|
848
824
|
<FRBRauthor href="#slaw"/>
|
@@ -850,26 +826,22 @@ EOS
|
|
850
826
|
</identification>
|
851
827
|
</meta>
|
852
828
|
<mainBody>
|
853
|
-
<hcontainer
|
854
|
-
<
|
855
|
-
|
856
|
-
|
857
|
-
<content>
|
858
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
859
|
-
</content>
|
860
|
-
</paragraph>
|
861
|
-
<section id="section-1">
|
862
|
-
<num>1.</num>
|
863
|
-
<heading>Foo</heading>
|
864
|
-
</section>
|
865
|
-
<section id="section-2">
|
866
|
-
<num>2.</num>
|
867
|
-
<heading>Bar</heading>
|
868
|
-
</section>
|
829
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
830
|
+
<content>
|
831
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
832
|
+
</content>
|
869
833
|
</hcontainer>
|
834
|
+
<section eId="sec_1">
|
835
|
+
<num>1.</num>
|
836
|
+
<heading>Foo</heading>
|
837
|
+
</section>
|
838
|
+
<section eId="sec_2">
|
839
|
+
<num>2.</num>
|
840
|
+
<heading>Bar</heading>
|
841
|
+
</section>
|
870
842
|
</mainBody>
|
871
843
|
</doc>
|
872
|
-
</
|
844
|
+
</attachment>'
|
873
845
|
end
|
874
846
|
|
875
847
|
it 'should handle a schedule with dot in the number' do
|
@@ -883,12 +855,14 @@ Subject to approval in terms of this By-Law, the erection:
|
|
883
855
|
EOS
|
884
856
|
s = to_xml(node)
|
885
857
|
today = Time.now.strftime('%Y-%m-%d')
|
886
|
-
s.should == '<
|
887
|
-
<
|
858
|
+
s.should == '<attachment eId="att_1">
|
859
|
+
<heading>1. First Schedule</heading>
|
860
|
+
<subheading>Schedule Heading</subheading>
|
861
|
+
<doc name="schedule">
|
888
862
|
<meta>
|
889
863
|
<identification source="#slaw">
|
890
864
|
<FRBRWork>
|
891
|
-
<FRBRthis value="/za/act/1980/01
|
865
|
+
<FRBRthis value="/za/act/1980/01/!1firstschedule"/>
|
892
866
|
<FRBRuri value="/za/act/1980/01"/>
|
893
867
|
<FRBRalias value="1. First Schedule"/>
|
894
868
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -896,14 +870,14 @@ EOS
|
|
896
870
|
<FRBRcountry value="za"/>
|
897
871
|
</FRBRWork>
|
898
872
|
<FRBRExpression>
|
899
|
-
<FRBRthis value="/za/act/1980/01/eng
|
873
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
900
874
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
901
875
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
902
876
|
<FRBRauthor href="#council"/>
|
903
877
|
<FRBRlanguage language="eng"/>
|
904
878
|
</FRBRExpression>
|
905
879
|
<FRBRManifestation>
|
906
|
-
<FRBRthis value="/za/act/1980/01/eng
|
880
|
+
<FRBRthis value="/za/act/1980/01/eng@/!1firstschedule"/>
|
907
881
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
908
882
|
<FRBRdate date="' + today + '" name="Generation"/>
|
909
883
|
<FRBRauthor href="#slaw"/>
|
@@ -911,26 +885,22 @@ EOS
|
|
911
885
|
</identification>
|
912
886
|
</meta>
|
913
887
|
<mainBody>
|
914
|
-
<hcontainer
|
915
|
-
<
|
916
|
-
|
917
|
-
|
918
|
-
<content>
|
919
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
920
|
-
</content>
|
921
|
-
</paragraph>
|
922
|
-
<section id="section-1">
|
923
|
-
<num>1.</num>
|
924
|
-
<heading>Foo</heading>
|
925
|
-
</section>
|
926
|
-
<section id="section-2">
|
927
|
-
<num>2.</num>
|
928
|
-
<heading>Bar</heading>
|
929
|
-
</section>
|
888
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
889
|
+
<content>
|
890
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
891
|
+
</content>
|
930
892
|
</hcontainer>
|
893
|
+
<section eId="sec_1">
|
894
|
+
<num>1.</num>
|
895
|
+
<heading>Foo</heading>
|
896
|
+
</section>
|
897
|
+
<section eId="sec_2">
|
898
|
+
<num>2.</num>
|
899
|
+
<heading>Bar</heading>
|
900
|
+
</section>
|
931
901
|
</mainBody>
|
932
902
|
</doc>
|
933
|
-
</
|
903
|
+
</attachment>'
|
934
904
|
end
|
935
905
|
|
936
906
|
it 'should handle a schedule with a title' do
|
@@ -943,12 +913,13 @@ Subject to approval in terms of this By-Law, the erection:
|
|
943
913
|
EOS
|
944
914
|
s = to_xml(node)
|
945
915
|
today = Time.now.strftime('%Y-%m-%d')
|
946
|
-
s.should == '<
|
947
|
-
<
|
916
|
+
s.should == '<attachment eId="att_1">
|
917
|
+
<heading>First Schedule</heading>
|
918
|
+
<doc name="schedule">
|
948
919
|
<meta>
|
949
920
|
<identification source="#slaw">
|
950
921
|
<FRBRWork>
|
951
|
-
<FRBRthis value="/za/act/1980/01
|
922
|
+
<FRBRthis value="/za/act/1980/01/!firstschedule"/>
|
952
923
|
<FRBRuri value="/za/act/1980/01"/>
|
953
924
|
<FRBRalias value="First Schedule"/>
|
954
925
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -956,14 +927,14 @@ EOS
|
|
956
927
|
<FRBRcountry value="za"/>
|
957
928
|
</FRBRWork>
|
958
929
|
<FRBRExpression>
|
959
|
-
<FRBRthis value="/za/act/1980/01/eng
|
930
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
960
931
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
961
932
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
962
933
|
<FRBRauthor href="#council"/>
|
963
934
|
<FRBRlanguage language="eng"/>
|
964
935
|
</FRBRExpression>
|
965
936
|
<FRBRManifestation>
|
966
|
-
<FRBRthis value="/za/act/1980/01/eng
|
937
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
967
938
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
968
939
|
<FRBRdate date="' + today + '" name="Generation"/>
|
969
940
|
<FRBRauthor href="#slaw"/>
|
@@ -971,25 +942,22 @@ EOS
|
|
971
942
|
</identification>
|
972
943
|
</meta>
|
973
944
|
<mainBody>
|
974
|
-
<hcontainer
|
975
|
-
<
|
976
|
-
|
977
|
-
|
978
|
-
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
979
|
-
</content>
|
980
|
-
</paragraph>
|
981
|
-
<section id="section-1">
|
982
|
-
<num>1.</num>
|
983
|
-
<heading>Foo</heading>
|
984
|
-
</section>
|
985
|
-
<section id="section-2">
|
986
|
-
<num>2.</num>
|
987
|
-
<heading>Bar</heading>
|
988
|
-
</section>
|
945
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
946
|
+
<content>
|
947
|
+
<p>Subject to approval in terms of this By-Law, the erection:</p>
|
948
|
+
</content>
|
989
949
|
</hcontainer>
|
950
|
+
<section eId="sec_1">
|
951
|
+
<num>1.</num>
|
952
|
+
<heading>Foo</heading>
|
953
|
+
</section>
|
954
|
+
<section eId="sec_2">
|
955
|
+
<num>2.</num>
|
956
|
+
<heading>Bar</heading>
|
957
|
+
</section>
|
990
958
|
</mainBody>
|
991
959
|
</doc>
|
992
|
-
</
|
960
|
+
</attachment>'
|
993
961
|
end
|
994
962
|
|
995
963
|
it 'should serialise a single schedule without a heading' do
|
@@ -1004,12 +972,13 @@ EOS
|
|
1004
972
|
s = to_xml(node)
|
1005
973
|
today = Time.now.strftime('%Y-%m-%d')
|
1006
974
|
s.should == <<EOS
|
1007
|
-
<
|
1008
|
-
<
|
975
|
+
<attachment eId="att_1">
|
976
|
+
<heading>Schedule 1</heading>
|
977
|
+
<doc name="schedule">
|
1009
978
|
<meta>
|
1010
979
|
<identification source="#slaw">
|
1011
980
|
<FRBRWork>
|
1012
|
-
<FRBRthis value="/za/act/1980/01
|
981
|
+
<FRBRthis value="/za/act/1980/01/!schedule1"/>
|
1013
982
|
<FRBRuri value="/za/act/1980/01"/>
|
1014
983
|
<FRBRalias value="Schedule 1"/>
|
1015
984
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -1017,14 +986,14 @@ EOS
|
|
1017
986
|
<FRBRcountry value="za"/>
|
1018
987
|
</FRBRWork>
|
1019
988
|
<FRBRExpression>
|
1020
|
-
<FRBRthis value="/za/act/1980/01/eng
|
989
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
1021
990
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
1022
991
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
1023
992
|
<FRBRauthor href="#council"/>
|
1024
993
|
<FRBRlanguage language="eng"/>
|
1025
994
|
</FRBRExpression>
|
1026
995
|
<FRBRManifestation>
|
1027
|
-
<FRBRthis value="/za/act/1980/01/eng
|
996
|
+
<FRBRthis value="/za/act/1980/01/eng@/!schedule1"/>
|
1028
997
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
1029
998
|
<FRBRdate date="#{today}" name="Generation"/>
|
1030
999
|
<FRBRauthor href="#slaw"/>
|
@@ -1032,25 +1001,22 @@ EOS
|
|
1032
1001
|
</identification>
|
1033
1002
|
</meta>
|
1034
1003
|
<mainBody>
|
1035
|
-
<hcontainer
|
1036
|
-
<
|
1037
|
-
|
1038
|
-
|
1039
|
-
<p>Other than as is set out hereinbelow, no signs other than locality bound signs, temporary signs including loose portable sign, estate agents signs, newspaper headline posters and posters (the erection of which must comply with the appropriate schedules pertinent thereto) shall be erected on Municipal owned land.</p>
|
1040
|
-
</content>
|
1041
|
-
</paragraph>
|
1042
|
-
<section id="section-1">
|
1043
|
-
<num>1.</num>
|
1044
|
-
<heading>Foo</heading>
|
1045
|
-
</section>
|
1046
|
-
<section id="section-2">
|
1047
|
-
<num>2.</num>
|
1048
|
-
<heading>Bar</heading>
|
1049
|
-
</section>
|
1004
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
1005
|
+
<content>
|
1006
|
+
<p>Other than as is set out hereinbelow, no signs other than locality bound signs, temporary signs including loose portable sign, estate agents signs, newspaper headline posters and posters (the erection of which must comply with the appropriate schedules pertinent thereto) shall be erected on Municipal owned land.</p>
|
1007
|
+
</content>
|
1050
1008
|
</hcontainer>
|
1009
|
+
<section eId="sec_1">
|
1010
|
+
<num>1.</num>
|
1011
|
+
<heading>Foo</heading>
|
1012
|
+
</section>
|
1013
|
+
<section eId="sec_2">
|
1014
|
+
<num>2.</num>
|
1015
|
+
<heading>Bar</heading>
|
1016
|
+
</section>
|
1051
1017
|
</mainBody>
|
1052
1018
|
</doc>
|
1053
|
-
</
|
1019
|
+
</attachment>
|
1054
1020
|
EOS
|
1055
1021
|
.strip
|
1056
1022
|
end
|
@@ -1064,12 +1030,14 @@ Subject to approval in terms of this By-Law.
|
|
1064
1030
|
EOS
|
1065
1031
|
s = to_xml(node)
|
1066
1032
|
today = Time.now.strftime('%Y-%m-%d')
|
1067
|
-
s.should == '<
|
1068
|
-
<
|
1033
|
+
s.should == '<attachment eId="att_1">
|
1034
|
+
<heading>First Schedule <remark status="editorial">[remark]</remark></heading>
|
1035
|
+
<subheading>Subheading <remark status="editorial">[another]</remark></subheading>
|
1036
|
+
<doc name="schedule">
|
1069
1037
|
<meta>
|
1070
1038
|
<identification source="#slaw">
|
1071
1039
|
<FRBRWork>
|
1072
|
-
<FRBRthis value="/za/act/1980/01
|
1040
|
+
<FRBRthis value="/za/act/1980/01/!firstschedule"/>
|
1073
1041
|
<FRBRuri value="/za/act/1980/01"/>
|
1074
1042
|
<FRBRalias value="First Schedule"/>
|
1075
1043
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
@@ -1077,14 +1045,14 @@ EOS
|
|
1077
1045
|
<FRBRcountry value="za"/>
|
1078
1046
|
</FRBRWork>
|
1079
1047
|
<FRBRExpression>
|
1080
|
-
<FRBRthis value="/za/act/1980/01/eng
|
1048
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
1081
1049
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
1082
1050
|
<FRBRdate date="1980-01-01" name="Generation"/>
|
1083
1051
|
<FRBRauthor href="#council"/>
|
1084
1052
|
<FRBRlanguage language="eng"/>
|
1085
1053
|
</FRBRExpression>
|
1086
1054
|
<FRBRManifestation>
|
1087
|
-
<FRBRthis value="/za/act/1980/01/eng
|
1055
|
+
<FRBRthis value="/za/act/1980/01/eng@/!firstschedule"/>
|
1088
1056
|
<FRBRuri value="/za/act/1980/01/eng@"/>
|
1089
1057
|
<FRBRdate date="' + today + '" name="Generation"/>
|
1090
1058
|
<FRBRauthor href="#slaw"/>
|
@@ -1092,18 +1060,14 @@ EOS
|
|
1092
1060
|
</identification>
|
1093
1061
|
</meta>
|
1094
1062
|
<mainBody>
|
1095
|
-
<hcontainer
|
1096
|
-
<
|
1097
|
-
|
1098
|
-
|
1099
|
-
<content>
|
1100
|
-
<p>Subject to approval in terms of this By-Law.</p>
|
1101
|
-
</content>
|
1102
|
-
</paragraph>
|
1063
|
+
<hcontainer eId="hcontainer_1" name="hcontainer">
|
1064
|
+
<content>
|
1065
|
+
<p>Subject to approval in terms of this By-Law.</p>
|
1066
|
+
</content>
|
1103
1067
|
</hcontainer>
|
1104
1068
|
</mainBody>
|
1105
1069
|
</doc>
|
1106
|
-
</
|
1070
|
+
</attachment>'
|
1107
1071
|
end
|
1108
1072
|
|
1109
1073
|
end
|