metanorma-iso 1.8.2 → 1.8.3

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.
@@ -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