metanorma-iso 1.8.2 → 1.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,8 +30,9 @@ module IsoDoc
30
30
  def introduction_names(clause)
31
31
  return if clause.nil?
32
32
 
33
- clause.at(ns("./clause")) and @anchors[clause["id"]] =
34
- { label: "0", level: 1, xref: clause.at(ns("./title"))&.text, type: "clause" }
33
+ clause.at(ns("./clause")) and
34
+ @anchors[clause["id"]] = { label: "0", level: 1, type: "clause",
35
+ xref: clause.at(ns("./title"))&.text }
35
36
  i = Counter.new
36
37
  clause.xpath(ns("./clause")).each do |c|
37
38
  i.increment(c)
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.8.2".freeze
3
+ VERSION = "1.8.3".freeze
4
4
  end
5
5
  end
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency "isodoc", "~> 1.6.2"
33
33
  spec.add_dependency "metanorma-standoc", "~> 1.9.0"
34
- spec.add_dependency "mn2sts", "~> 1.5.0"
34
+ spec.add_dependency "mn2sts", "~> 1.8.0"
35
35
  spec.add_dependency "ruby-jing"
36
36
  spec.add_dependency "tokenizer", "~> 0.3.0"
37
37
  spec.add_dependency "twitter_cldr"
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Asciidoctor::ISO do
4
4
  it "processes open blocks" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
5
+ input = <<~INPUT
6
6
  #{ASCIIDOC_BLANK_HDR}
7
7
  --
8
8
  x
@@ -12,6 +12,7 @@ RSpec.describe Asciidoctor::ISO do
12
12
  z
13
13
  --
14
14
  INPUT
15
+ output = <<~OUTPUT
15
16
  #{BLANK_HDR}
16
17
  <sections>
17
18
  <p id="_">x</p>
@@ -20,10 +21,12 @@ RSpec.describe Asciidoctor::ISO do
20
21
  </sections>
21
22
  </iso-standard>
22
23
  OUTPUT
24
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
25
+ .to be_equivalent_to xmlpp(output)
23
26
  end
24
27
 
25
28
  it "processes stem blocks" do
26
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
29
+ input = <<~INPUT
27
30
  #{ASCIIDOC_BLANK_HDR}
28
31
  [stem]
29
32
  ++++
@@ -36,6 +39,7 @@ RSpec.describe Asciidoctor::ISO do
36
39
  <mml:math><mml:msub xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"> <mml:mrow> <mml:mrow> <mml:mi mathvariant="bold-italic">F</mml:mi> </mml:mrow> </mml:mrow> <mml:mrow> <mml:mrow> <mml:mi mathvariant="bold-italic">&#x0391;</mml:mi> </mml:mrow> </mml:mrow> </mml:msub> </mml:math>
37
40
  ++++
38
41
  INPUT
42
+ output = <<~OUTPUT
39
43
  #{BLANK_HDR}
40
44
  <sections>
41
45
  <formula id="_">
@@ -73,10 +77,12 @@ RSpec.describe Asciidoctor::ISO do
73
77
  </sections>
74
78
  </iso-standard>
75
79
  OUTPUT
80
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
81
+ .to be_equivalent_to xmlpp(output)
76
82
  end
77
83
 
78
84
  it "ignores review blocks unless document is in draft mode" do
79
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
85
+ input = <<~INPUT
80
86
  #{ASCIIDOC_BLANK_HDR}
81
87
  [[foreword]]
82
88
  .Foreword
@@ -89,16 +95,19 @@ RSpec.describe Asciidoctor::ISO do
89
95
  For further information on the Foreword, see *ISO/IEC Directives, Part 2, 2016, Clause 12.*
90
96
  ****
91
97
  INPUT
98
+ output = <<~OUTPUT
92
99
  #{BLANK_HDR}
93
100
  <sections>
94
101
  <p id="foreword">Foreword</p>
95
102
  </sections>
96
103
  </iso-standard>
97
104
  OUTPUT
105
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
106
+ .to be_equivalent_to xmlpp(output)
98
107
  end
99
108
 
100
109
  it "processes review blocks if document is in draft mode" do
101
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
110
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
102
111
  = Document title
103
112
  Author
104
113
  :docfile: test.adoc
@@ -118,23 +127,25 @@ RSpec.describe Asciidoctor::ISO do
118
127
  For further information on the Foreword, see *ISO/IEC Directives, Part 2, 2016, Clause 12.*
119
128
  ****
120
129
  INPUT
121
- expect(xmlpp(strip_guid(output).sub(/^.+<sections>/m, "<iso-standard><sections>")))
122
- .to be_equivalent_to xmlpp(<<~"OUTPUT")
123
- <iso-standard>
124
- <sections>
125
- <p id="foreword">Foreword</p>
126
- <review date="20170101T00:00:00Z" from="foreword" id="_" reviewer="ISO" to="foreword">
127
- <p id="_">A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions.</p>
128
- <p id="_">For further information on the Foreword, see#{' '}
129
- <strong>ISO/IEC Directives, Part 2, 2016, Clause 12.</strong></p>
130
- </review>
131
- </sections>
132
- </iso-standard>
133
- OUTPUT
130
+ output = <<~OUTPUT
131
+ <iso-standard>
132
+ <sections>
133
+ <p id="foreword">Foreword</p>
134
+ <review date="20170101T00:00:00Z" from="foreword" id="_" reviewer="ISO" to="foreword">
135
+ <p id="_">A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions.</p>
136
+ <p id="_">For further information on the Foreword, see#{' '}
137
+ <strong>ISO/IEC Directives, Part 2, 2016, Clause 12.</strong></p>
138
+ </review>
139
+ </sections>
140
+ </iso-standard>
141
+ OUTPUT
142
+ expect(xmlpp(strip_guid(input)
143
+ .sub(/^.+<sections>/m, "<iso-standard><sections>")))
144
+ .to be_equivalent_to xmlpp(output)
134
145
  end
135
146
 
136
147
  it "processes term notes" do
137
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
148
+ input = <<~INPUT
138
149
  #{ASCIIDOC_BLANK_HDR}
139
150
  == Terms and Definitions
140
151
 
@@ -142,6 +153,7 @@ RSpec.describe Asciidoctor::ISO do
142
153
 
143
154
  NOTE: This is a note
144
155
  INPUT
156
+ output = <<~OUTPUT
145
157
  #{BLANK_HDR}
146
158
  <sections>
147
159
  <terms id="_" obligation="normative">
@@ -156,13 +168,16 @@ RSpec.describe Asciidoctor::ISO do
156
168
  </sections>
157
169
  </iso-standard>
158
170
  OUTPUT
171
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
172
+ .to be_equivalent_to xmlpp(output)
159
173
  end
160
174
 
161
175
  it "processes notes" do
162
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
176
+ input = <<~INPUT
163
177
  #{ASCIIDOC_BLANK_HDR}
164
178
  NOTE: This is a note
165
179
  INPUT
180
+ output = <<~OUTPUT
166
181
  #{BLANK_HDR}
167
182
  <sections>
168
183
  <note id="_">
@@ -171,15 +186,18 @@ RSpec.describe Asciidoctor::ISO do
171
186
  </sections>
172
187
  </iso-standard>
173
188
  OUTPUT
189
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
190
+ .to be_equivalent_to xmlpp(output)
174
191
  end
175
192
 
176
193
  it "processes literals" do
177
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
194
+ input = <<~INPUT
178
195
  #{ASCIIDOC_BLANK_HDR}
179
196
  ....
180
197
  LITERAL
181
198
  ....
182
199
  INPUT
200
+ output = <<~OUTPUT
183
201
  #{BLANK_HDR}
184
202
  <sections>
185
203
  <figure id="_">
@@ -188,13 +206,16 @@ RSpec.describe Asciidoctor::ISO do
188
206
  </sections>
189
207
  </iso-standard>
190
208
  OUTPUT
209
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
210
+ .to be_equivalent_to xmlpp(output)
191
211
  end
192
212
 
193
213
  it "processes simple admonitions with Asciidoc names" do
194
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
214
+ input = <<~INPUT
195
215
  #{ASCIIDOC_BLANK_HDR}
196
216
  CAUTION: Only use paddy or parboiled rice for the determination of husked rice yield.
197
217
  INPUT
218
+ output = <<~OUTPUT
198
219
  #{BLANK_HDR}
199
220
  <sections>
200
221
  <admonition id="_" type="caution">
@@ -203,10 +224,12 @@ RSpec.describe Asciidoctor::ISO do
203
224
  </sections>
204
225
  </iso-standard>
205
226
  OUTPUT
227
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
228
+ .to be_equivalent_to xmlpp(output)
206
229
  end
207
230
 
208
231
  it "processes complex admonitions with non-Asciidoc names" do
209
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
232
+ input = <<~INPUT
210
233
  #{ASCIIDOC_BLANK_HDR}
211
234
  [CAUTION,type=Safety Precautions]
212
235
  .Safety Precautions
@@ -218,6 +241,7 @@ RSpec.describe Asciidoctor::ISO do
218
241
  . Celery makes them sad.
219
242
  ====
220
243
  INPUT
244
+ output = <<~OUTPUT
221
245
  #{BLANK_HDR}
222
246
  <sections>
223
247
  <admonition id="_" type="safety precautions">
@@ -238,10 +262,12 @@ RSpec.describe Asciidoctor::ISO do
238
262
  </sections>
239
263
  </iso-standard>
240
264
  OUTPUT
265
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
266
+ .to be_equivalent_to xmlpp(output)
241
267
  end
242
268
 
243
269
  it "processes term examples" do
244
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
270
+ input = <<~INPUT
245
271
  #{ASCIIDOC_BLANK_HDR}
246
272
  == Terms and Definitions
247
273
 
@@ -250,6 +276,7 @@ RSpec.describe Asciidoctor::ISO do
250
276
  [example]
251
277
  This is an example
252
278
  INPUT
279
+ output = <<~OUTPUT
253
280
  #{BLANK_HDR}
254
281
  <sections>
255
282
  <terms id="_" obligation="normative">
@@ -264,10 +291,12 @@ RSpec.describe Asciidoctor::ISO do
264
291
  </sections>
265
292
  </iso-standard>
266
293
  OUTPUT
294
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
295
+ .to be_equivalent_to xmlpp(output)
267
296
  end
268
297
 
269
298
  it "processes examples" do
270
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
299
+ input = <<~INPUT
271
300
  #{ASCIIDOC_BLANK_HDR}
272
301
  [example]
273
302
  ====
@@ -276,6 +305,7 @@ RSpec.describe Asciidoctor::ISO do
276
305
  Amen
277
306
  ====
278
307
  INPUT
308
+ output = <<~OUTPUT
279
309
  #{BLANK_HDR}
280
310
  <sections>
281
311
  <example id="_">
@@ -285,15 +315,18 @@ RSpec.describe Asciidoctor::ISO do
285
315
  </sections>
286
316
  </iso-standard>
287
317
  OUTPUT
318
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
319
+ .to be_equivalent_to xmlpp(output)
288
320
  end
289
321
 
290
322
  it "processes preambles" do
291
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
323
+ input = <<~INPUT
292
324
  #{ASCIIDOC_BLANK_HDR}
293
325
  This is a preamble
294
326
 
295
327
  == Section 1
296
328
  INPUT
329
+ output = <<~OUTPUT
297
330
  #{BLANK_HDR}
298
331
  <preface>
299
332
  <foreword id="_" obligation="informative">
@@ -308,15 +341,18 @@ RSpec.describe Asciidoctor::ISO do
308
341
  </sections>
309
342
  </iso-standard>
310
343
  OUTPUT
344
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
345
+ .to be_equivalent_to xmlpp(output)
311
346
  end
312
347
 
313
348
  it "processes images" do
314
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
349
+ input = <<~INPUT
315
350
  #{ASCIIDOC_BLANK_HDR}
316
351
  .Split-it-right sample divider
317
352
  image::spec/examples/rice_images/rice_image1.png[]
318
353
 
319
354
  INPUT
355
+ output = <<~OUTPUT
320
356
  #{BLANK_HDR}
321
357
  <sections>
322
358
  <figure id="_">
@@ -326,15 +362,18 @@ RSpec.describe Asciidoctor::ISO do
326
362
  </sections>
327
363
  </iso-standard>
328
364
  OUTPUT
365
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
366
+ .to be_equivalent_to xmlpp(output)
329
367
  end
330
368
 
331
369
  it "accepts width and height attributes on images" do
332
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
370
+ input = <<~INPUT
333
371
  #{ASCIIDOC_BLANK_HDR}
334
372
  [height=4,width=3]
335
373
  image::spec/examples/rice_images/rice_image1.png[]
336
374
 
337
375
  INPUT
376
+ output = <<~OUTPUT
338
377
  #{BLANK_HDR}
339
378
  <sections>
340
379
  <figure id="_">
@@ -343,15 +382,18 @@ RSpec.describe Asciidoctor::ISO do
343
382
  </sections>
344
383
  </iso-standard>
345
384
  OUTPUT
385
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
386
+ .to be_equivalent_to xmlpp(output)
346
387
  end
347
388
 
348
389
  it "accepts auto for width and height attributes on images" do
349
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
390
+ input = <<~INPUT
350
391
  #{ASCIIDOC_BLANK_HDR}
351
392
  [height=4,width=auto]
352
393
  image::spec/examples/rice_images/rice_image1.png[]
353
394
 
354
395
  INPUT
396
+ output = <<~OUTPUT
355
397
  #{BLANK_HDR}
356
398
  <sections>
357
399
  <figure id="_">
@@ -360,30 +402,36 @@ RSpec.describe Asciidoctor::ISO do
360
402
  </sections>
361
403
  </iso-standard>
362
404
  OUTPUT
405
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
406
+ .to be_equivalent_to xmlpp(output)
363
407
  end
364
408
 
365
409
  it "accepts alignment attribute on paragraphs" do
366
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
410
+ input = <<~INPUT
367
411
  #{ASCIIDOC_BLANK_HDR}
368
412
  [align=right]
369
413
  This para is right-aligned.
370
414
  INPUT
415
+ output = <<~OUTPUT
371
416
  #{BLANK_HDR}
372
417
  <sections>
373
418
  <p align="right" id="_">This para is right-aligned.</p>
374
419
  </sections>
375
420
  </iso-standard>
376
421
  OUTPUT
422
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
423
+ .to be_equivalent_to xmlpp(output)
377
424
  end
378
425
 
379
426
  it "processes blockquotes" do
380
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
427
+ input = <<~INPUT
381
428
  #{ASCIIDOC_BLANK_HDR}
382
429
  [quote, ISO, "ISO7301,section 1"]
383
430
  ____
384
431
  Block quotation
385
432
  ____
386
433
  INPUT
434
+ output = <<~OUTPUT
387
435
  #{BLANK_HDR}
388
436
  <sections>
389
437
  <quote id="_">
@@ -400,10 +448,12 @@ RSpec.describe Asciidoctor::ISO do
400
448
  </sections>
401
449
  </iso-standard>
402
450
  OUTPUT
451
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
452
+ .to be_equivalent_to xmlpp(output)
403
453
  end
404
454
 
405
455
  it "processes source code" do
406
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
456
+ input = <<~INPUT
407
457
  #{ASCIIDOC_BLANK_HDR}
408
458
  [source,ruby]
409
459
  --
@@ -413,6 +463,7 @@ RSpec.describe Asciidoctor::ISO do
413
463
  end
414
464
  --
415
465
  INPUT
466
+ output = <<~OUTPUT
416
467
  #{BLANK_HDR}
417
468
  <sections>
418
469
  <sourcecode id="_" lang="ruby">
@@ -424,10 +475,12 @@ RSpec.describe Asciidoctor::ISO do
424
475
  </sections>
425
476
  </iso-standard>
426
477
  OUTPUT
478
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
479
+ .to be_equivalent_to xmlpp(output)
427
480
  end
428
481
 
429
482
  it "processes callouts" do
430
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
483
+ input = <<~INPUT
431
484
  #{ASCIIDOC_BLANK_HDR}
432
485
  [source,ruby]
433
486
  --
@@ -439,6 +492,7 @@ RSpec.describe Asciidoctor::ISO do
439
492
  <1> This is one callout
440
493
  <2> This is another callout
441
494
  INPUT
495
+ output = <<~OUTPUT
442
496
  #{BLANK_HDR}
443
497
  <sections>
444
498
  <sourcecode id="_" lang="ruby">
@@ -456,10 +510,12 @@ RSpec.describe Asciidoctor::ISO do
456
510
  </sections>
457
511
  </iso-standard>
458
512
  OUTPUT
513
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
514
+ .to be_equivalent_to xmlpp(output)
459
515
  end
460
516
 
461
517
  it "processes unmodified term sources" do
462
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
518
+ input = <<~INPUT
463
519
  #{ASCIIDOC_BLANK_HDR}
464
520
  == Terms and Definitions
465
521
 
@@ -468,6 +524,7 @@ RSpec.describe Asciidoctor::ISO do
468
524
  [.source]
469
525
  <<ISO2191,section=1>>
470
526
  INPUT
527
+ output = <<~OUTPUT
471
528
  #{BLANK_HDR}
472
529
  <sections>
473
530
  <terms id="_" obligation="normative">
@@ -488,10 +545,12 @@ RSpec.describe Asciidoctor::ISO do
488
545
  </sections>
489
546
  </iso-standard>
490
547
  OUTPUT
548
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
549
+ .to be_equivalent_to xmlpp(output)
491
550
  end
492
551
 
493
552
  it "processes modified term sources" do
494
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
553
+ input = <<~INPUT
495
554
  #{ASCIIDOC_BLANK_HDR}
496
555
  == Terms and Definitions
497
556
 
@@ -500,6 +559,7 @@ RSpec.describe Asciidoctor::ISO do
500
559
  [.source]
501
560
  <<ISO2191,section=1>>, with adjustments
502
561
  INPUT
562
+ output = <<~OUTPUT
503
563
  #{BLANK_HDR}
504
564
  <sections>
505
565
  <terms id="_" obligation="normative">
@@ -523,5 +583,7 @@ RSpec.describe Asciidoctor::ISO do
523
583
  </sections>
524
584
  </iso-standard>
525
585
  OUTPUT
586
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
587
+ .to be_equivalent_to xmlpp(output)
526
588
  end
527
589
  end