isodoc 2.0.8.1 → 2.1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/isodoc.gemspec +4 -2
  3. data/lib/isodoc/convert.rb +1 -1
  4. data/lib/isodoc/css.rb +11 -10
  5. data/lib/isodoc/function/blocks.rb +0 -39
  6. data/lib/isodoc/function/blocks_example_note.rb +36 -1
  7. data/lib/isodoc/function/inline.rb +4 -0
  8. data/lib/isodoc/function/references.rb +2 -15
  9. data/lib/isodoc/function/section.rb +5 -0
  10. data/lib/isodoc/function/to_word_html.rb +7 -11
  11. data/lib/isodoc/html_function/postprocess.rb +16 -2
  12. data/lib/isodoc/metadata.rb +2 -1
  13. data/lib/isodoc/presentation_function/bibdata.rb +30 -4
  14. data/lib/isodoc/presentation_function/block.rb +13 -1
  15. data/lib/isodoc/presentation_function/section.rb +36 -0
  16. data/lib/isodoc/presentation_xml_convert.rb +7 -2
  17. data/lib/isodoc/version.rb +1 -1
  18. data/lib/isodoc/word_function/postprocess.rb +4 -4
  19. data/lib/isodoc/word_function/postprocess_cover.rb +14 -0
  20. data/lib/isodoc/word_function/table.rb +12 -10
  21. data/lib/isodoc/xref/xref_anchor.rb +1 -1
  22. data/lib/isodoc/xref/xref_counter.rb +4 -1
  23. data/lib/isodoc/xref/xref_gen_seq.rb +3 -3
  24. data/lib/isodoc/xref/xref_sect_gen.rb +34 -36
  25. data/lib/isodoc/xref.rb +19 -8
  26. data/lib/isodoc-yaml/i18n-ar.yaml +9 -0
  27. data/lib/isodoc-yaml/i18n-de.yaml +13 -0
  28. data/lib/isodoc-yaml/i18n-en.yaml +5 -0
  29. data/lib/isodoc-yaml/i18n-es.yaml +11 -0
  30. data/lib/isodoc-yaml/i18n-fr.yaml +12 -1
  31. data/lib/isodoc-yaml/i18n-ru.yaml +13 -0
  32. data/lib/isodoc-yaml/i18n-zh-Hans.yaml +5 -0
  33. data/lib/relaton/render/config.yml +4 -0
  34. data/lib/relaton/render/general.rb +35 -0
  35. data/spec/assets/i18n.yaml +6 -0
  36. data/spec/isodoc/blocks_spec.rb +249 -61
  37. data/spec/isodoc/i18n_spec.rb +266 -197
  38. data/spec/isodoc/inline_spec.rb +80 -106
  39. data/spec/isodoc/metadata_spec.rb +5 -3
  40. data/spec/isodoc/postproc_spec.rb +539 -397
  41. data/spec/isodoc/ref_spec.rb +52 -98
  42. data/spec/isodoc/section_spec.rb +4 -4
  43. data/spec/isodoc/xref_numbering_spec.rb +31 -0
  44. metadata +24 -8
@@ -6,6 +6,14 @@ RSpec.describe IsoDoc do
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <bibdata>
8
8
  <language>en</language>
9
+ <status>
10
+ <stage>published</stage>
11
+ <substage>withdrawn</substage>
12
+ </status>
13
+ <edition>2</edition>
14
+ <ext>
15
+ <doctype>brochure</doctype>
16
+ </ext>
9
17
  </bibdata>
10
18
  <preface>
11
19
  <foreword obligation="informative">
@@ -68,66 +76,75 @@ RSpec.describe IsoDoc do
68
76
  INPUT
69
77
 
70
78
  presxml = <<~"PRESXML"
71
- <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
72
- <bibdata>
73
- <language current="true">en</language>
74
- </bibdata>
75
- <preface>
76
- <foreword obligation="informative" displayorder="1">
77
- <title>Foreword</title>
78
- <p id="A">See <xref target="M">Clause 5</xref></p>
79
- </foreword>
80
- <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
81
- <title depth="2">Introduction Subsection</title>
82
- </clause>
83
- </introduction></preface><sections>
84
- <clause id="D" obligation="normative" type="scope" displayorder="3">
85
- <title depth="1">1.<tab/>Scope</title>
86
- <p id="E">Text</p>
87
- </clause>
88
- <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
89
- <title depth="2">3.1.<tab/>Normal Terms</title>
90
- <term id="J"><name>3.1.1.</name>
91
- <preferred><strong>Term2</strong></preferred>
92
- </term>
93
- </terms>
94
- <definitions id="K"><title>3.2.</title>
95
- <dl>
96
- <dt>Symbol</dt>
97
- <dd>Definition</dd>
98
- </dl>
99
- </definitions>
100
- </clause>
101
- <definitions id="L" displayorder="6"><title>4.</title>
102
- <dl>
103
- <dt>Symbol</dt>
104
- <dd>Definition</dd>
105
- </dl>
106
- </definitions>
107
- <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
108
- <title depth="2">5.1.<tab/>Introduction</title>
109
- </clause>
110
- <clause id="O" inline-header="false" obligation="normative">
111
- <title depth="2">5.2.<tab/>Clause 4.2</title>
112
- </clause></clause>
113
- </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
114
- <title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
115
- <clause id="Q" inline-header="false" obligation="normative">
116
- <title depth="2">A.1.<tab/>Annex A.1</title>
117
- <clause id="Q1" inline-header="false" obligation="normative">
118
- <title depth="3">A.1.1.<tab/>Annex A.1a</title>
79
+ <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
80
+ <bibdata>
81
+ <language current="true">en</language>
82
+ <status>
83
+ <stage>published</stage>
84
+ <substage>withdrawn</substage>
85
+ </status>
86
+ <edition language=''>2</edition>
87
+ <edition language='en'>second edition</edition>
88
+ <ext>
89
+ <doctype>brochure</doctype>
90
+ </ext>
91
+ </bibdata>
92
+ <preface>
93
+ <foreword obligation="informative" displayorder="1">
94
+ <title>Foreword</title>
95
+ <p id="A">See <xref target="M">Clause 5</xref></p>
96
+ </foreword>
97
+ <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
98
+ <title depth="2">Introduction Subsection</title>
119
99
  </clause>
120
- </clause>
121
- </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
122
- <title depth="1">2.<tab/>Normative References</title>
123
- </references><clause id="S" obligation="informative" displayorder="9">
124
- <title depth="1">Bibliography</title>
125
- <references id="T" obligation="informative" normative="false">
126
- <title depth="2">Bibliography Subsection</title>
127
- </references>
128
- </clause>
129
- </bibliography>
130
- </iso-standard>
100
+ </introduction></preface><sections>
101
+ <clause id="D" obligation="normative" type="scope" displayorder="3">
102
+ <title depth="1">1.<tab/>Scope</title>
103
+ <p id="E">Text</p>
104
+ </clause>
105
+ <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
106
+ <title depth="2">3.1.<tab/>Normal Terms</title>
107
+ <term id="J"><name>3.1.1.</name>
108
+ <preferred><strong>Term2</strong></preferred>
109
+ </term>
110
+ </terms>
111
+ <definitions id="K"><title>3.2.</title>
112
+ <dl>
113
+ <dt>Symbol</dt>
114
+ <dd>Definition</dd>
115
+ </dl>
116
+ </definitions>
117
+ </clause>
118
+ <definitions id="L" displayorder="6"><title>4.</title>
119
+ <dl>
120
+ <dt>Symbol</dt>
121
+ <dd>Definition</dd>
122
+ </dl>
123
+ </definitions>
124
+ <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
125
+ <title depth="2">5.1.<tab/>Introduction</title>
126
+ </clause>
127
+ <clause id="O" inline-header="false" obligation="normative">
128
+ <title depth="2">5.2.<tab/>Clause 4.2</title>
129
+ </clause></clause>
130
+ </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
131
+ <title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
132
+ <clause id="Q" inline-header="false" obligation="normative">
133
+ <title depth="2">A.1.<tab/>Annex A.1</title>
134
+ <clause id="Q1" inline-header="false" obligation="normative">
135
+ <title depth="3">A.1.1.<tab/>Annex A.1a</title>
136
+ </clause>
137
+ </clause>
138
+ </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
139
+ <title depth="1">2.<tab/>Normative References</title>
140
+ </references><clause id="S" obligation="informative" displayorder="9">
141
+ <title depth="1">Bibliography</title>
142
+ <references id="T" obligation="informative" normative="false">
143
+ <title depth="2">Bibliography Subsection</title>
144
+ </references>
145
+ </clause>
146
+ </bibliography>
147
+ </iso-standard>
131
148
  PRESXML
132
149
 
133
150
  output = <<~"OUTPUT"
@@ -215,6 +232,14 @@ RSpec.describe IsoDoc do
215
232
  <iso-standard xmlns="http://riboseinc.com/isoxml">
216
233
  <bibdata>
217
234
  <language>tlh</language>
235
+ <status>
236
+ <stage>published</stage>
237
+ <substage>withdrawn</substage>
238
+ </status>
239
+ <edition>2</edition>
240
+ <ext>
241
+ <doctype>brochure</doctype>
242
+ </ext>
218
243
  </bibdata>
219
244
  <preface>
220
245
  <foreword obligation="informative">
@@ -276,66 +301,75 @@ RSpec.describe IsoDoc do
276
301
  </iso-standard>
277
302
  INPUT
278
303
  output = <<~OUTPUT
279
- <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
280
- <bibdata>
281
- <language current="true">tlh</language>
282
- </bibdata>
283
- <preface>
284
- <foreword obligation="informative" displayorder="1">
285
- <title>Foreword</title>
286
- <p id="A">See <xref target="M">Clause 5</xref></p>
287
- </foreword>
288
- <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
289
- <title depth="2">Introduction Subsection</title>
290
- </clause>
291
- </introduction></preface><sections>
292
- <clause id="D" obligation="normative" type="scope" displayorder="3">
293
- <title depth="1">1.<tab/>Scope</title>
294
- <p id="E">Text</p>
295
- </clause>
296
- <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
297
- <title depth="2">3.1.<tab/>Normal Terms</title>
298
- <term id="J"><name>3.1.1.</name>
299
- <preferred><strong>Term2</strong></preferred>
300
- </term>
301
- </terms>
302
- <definitions id="K"><title>3.2.</title>
303
- <dl>
304
- <dt>Symbol</dt>
305
- <dd>Definition</dd>
306
- </dl>
307
- </definitions>
308
- </clause>
309
- <definitions id="L" displayorder="6"><title>4.</title>
310
- <dl>
311
- <dt>Symbol</dt>
312
- <dd>Definition</dd>
313
- </dl>
314
- </definitions>
315
- <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
316
- <title depth="2">5.1.<tab/>Introduction</title>
317
- </clause>
318
- <clause id="O" inline-header="false" obligation="normative">
319
- <title depth="2">5.2.<tab/>Clause 4.2</title>
320
- </clause></clause>
321
- </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
322
- <title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
323
- <clause id="Q" inline-header="false" obligation="normative">
324
- <title depth="2">A.1.<tab/>Annex A.1</title>
325
- <clause id="Q1" inline-header="false" obligation="normative">
326
- <title depth="3">A.1.1.<tab/>Annex A.1a</title>
327
- </clause>
328
- </clause>
329
- </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
330
- <title depth="1">2.<tab/>Normative References</title>
331
- </references><clause id="S" obligation="informative" displayorder="9">
332
- <title depth="1">Bibliography</title>
333
- <references id="T" obligation="informative" normative="false">
334
- <title depth="2">Bibliography Subsection</title>
335
- </references>
336
- </clause>
337
- </bibliography>
338
- </iso-standard>
304
+ <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
305
+ <bibdata>
306
+ <language current="true">tlh</language>
307
+ <status>
308
+ <stage>published</stage>
309
+ <substage>withdrawn</substage>
310
+ </status>
311
+ <edition language=''>2</edition>
312
+ <edition language='tlh'>second edition</edition>
313
+ <ext>
314
+ <doctype>brochure</doctype>
315
+ </ext>
316
+ </bibdata>
317
+ <preface>
318
+ <foreword obligation="informative" displayorder="1">
319
+ <title>Foreword</title>
320
+ <p id="A">See <xref target="M">Clause 5</xref></p>
321
+ </foreword>
322
+ <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
323
+ <title depth="2">Introduction Subsection</title>
324
+ </clause>
325
+ </introduction></preface><sections>
326
+ <clause id="D" obligation="normative" type="scope" displayorder="3">
327
+ <title depth="1">1.<tab/>Scope</title>
328
+ <p id="E">Text</p>
329
+ </clause>
330
+ <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
331
+ <title depth="2">3.1.<tab/>Normal Terms</title>
332
+ <term id="J"><name>3.1.1.</name>
333
+ <preferred><strong>Term2</strong></preferred>
334
+ </term>
335
+ </terms>
336
+ <definitions id="K"><title>3.2.</title>
337
+ <dl>
338
+ <dt>Symbol</dt>
339
+ <dd>Definition</dd>
340
+ </dl>
341
+ </definitions>
342
+ </clause>
343
+ <definitions id="L" displayorder="6"><title>4.</title>
344
+ <dl>
345
+ <dt>Symbol</dt>
346
+ <dd>Definition</dd>
347
+ </dl>
348
+ </definitions>
349
+ <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
350
+ <title depth="2">5.1.<tab/>Introduction</title>
351
+ </clause>
352
+ <clause id="O" inline-header="false" obligation="normative">
353
+ <title depth="2">5.2.<tab/>Clause 4.2</title>
354
+ </clause></clause>
355
+ </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
356
+ <title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
357
+ <clause id="Q" inline-header="false" obligation="normative">
358
+ <title depth="2">A.1.<tab/>Annex A.1</title>
359
+ <clause id="Q1" inline-header="false" obligation="normative">
360
+ <title depth="3">A.1.1.<tab/>Annex A.1a</title>
361
+ </clause>
362
+ </clause>
363
+ </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
364
+ <title depth="1">2.<tab/>Normative References</title>
365
+ </references><clause id="S" obligation="informative" displayorder="9">
366
+ <title depth="1">Bibliography</title>
367
+ <references id="T" obligation="informative" normative="false">
368
+ <title depth="2">Bibliography Subsection</title>
369
+ </references>
370
+ </clause>
371
+ </bibliography>
372
+ </iso-standard>
339
373
  OUTPUT
340
374
  expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
341
375
  .convert("test", input, true)
@@ -348,6 +382,14 @@ RSpec.describe IsoDoc do
348
382
  <iso-standard xmlns="http://riboseinc.com/isoxml">
349
383
  <bibdata>
350
384
  <language>fr</language>
385
+ <status>
386
+ <stage>published</stage>
387
+ <substage>withdrawn</substage>
388
+ </status>
389
+ <edition>2</edition>
390
+ <ext>
391
+ <doctype>brochure</doctype>
392
+ </ext>
351
393
  </bibdata>
352
394
  <preface>
353
395
  <foreword obligation="informative">
@@ -410,66 +452,75 @@ RSpec.describe IsoDoc do
410
452
  INPUT
411
453
 
412
454
  presxml = <<~"PRESXML"
413
- <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
414
- <bibdata>
415
- <language current="true">fr</language>
416
- </bibdata>
417
- <preface>
418
- <foreword obligation="informative" displayorder="1">
419
- <title>Foreword</title>
420
- <p id="A">See <xref target="M">Article 5</xref></p>
421
- </foreword>
422
- <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
423
- <title depth="2">Introduction Subsection</title>
424
- </clause>
425
- </introduction></preface><sections>
426
- <clause id="D" obligation="normative" type="scope" displayorder="3">
427
- <title depth="1">1.<tab/>Scope</title>
428
- <p id="E">Text</p>
429
- </clause>
430
- <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
431
- <title depth="2">3.1.<tab/>Normal Terms</title>
432
- <term id="J"><name>3.1.1.</name>
433
- <preferred><strong>Term2</strong></preferred>
434
- </term>
435
- </terms>
436
- <definitions id="K"><title>3.2.</title>
437
- <dl>
438
- <dt>Symbol</dt>
439
- <dd>Definition</dd>
440
- </dl>
441
- </definitions>
442
- </clause>
443
- <definitions id="L" displayorder="6"><title>4.</title>
444
- <dl>
445
- <dt>Symbol</dt>
446
- <dd>Definition</dd>
447
- </dl>
448
- </definitions>
449
- <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
450
- <title depth="2">5.1.<tab/>Introduction</title>
451
- </clause>
452
- <clause id="O" inline-header="false" obligation="normative">
453
- <title depth="2">5.2.<tab/>Clause 4.2</title>
454
- </clause></clause>
455
- </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
456
- <title><strong>Annexe A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
457
- <clause id="Q" inline-header="false" obligation="normative">
458
- <title depth="2">A.1.<tab/>Annex A.1</title>
459
- <clause id="Q1" inline-header="false" obligation="normative">
460
- <title depth="3">A.1.1.<tab/>Annex A.1a</title>
455
+ <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
456
+ <bibdata>
457
+ <language current="true">fr</language>
458
+ <status>
459
+ <stage>published</stage>
460
+ <substage>withdrawn</substage>
461
+ </status>
462
+ <edition language=''>2</edition>
463
+ <edition language='fr'>deuxi&#xE8;me &#xE9;dition</edition>
464
+ <ext>
465
+ <doctype>brochure</doctype>
466
+ </ext>
467
+ </bibdata>
468
+ <preface>
469
+ <foreword obligation="informative" displayorder="1">
470
+ <title>Foreword</title>
471
+ <p id="A">See <xref target="M">Article 5</xref></p>
472
+ </foreword>
473
+ <introduction id="B" obligation="informative" displayorder="2"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
474
+ <title depth="2">Introduction Subsection</title>
461
475
  </clause>
462
- </clause>
463
- </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
464
- <title depth="1">2.<tab/>Normative References</title>
465
- </references><clause id="S" obligation="informative" displayorder="9">
466
- <title depth="1">Bibliographie</title>
467
- <references id="T" obligation="informative" normative="false">
468
- <title depth="2">Bibliography Subsection</title>
469
- </references>
470
- </clause>
471
- </bibliography>
472
- </iso-standard>
476
+ </introduction></preface><sections>
477
+ <clause id="D" obligation="normative" type="scope" displayorder="3">
478
+ <title depth="1">1.<tab/>Scope</title>
479
+ <p id="E">Text</p>
480
+ </clause>
481
+ <clause id="H" obligation="normative" displayorder="5"><title depth="1">3.<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
482
+ <title depth="2">3.1.<tab/>Normal Terms</title>
483
+ <term id="J"><name>3.1.1.</name>
484
+ <preferred><strong>Term2</strong></preferred>
485
+ </term>
486
+ </terms>
487
+ <definitions id="K"><title>3.2.</title>
488
+ <dl>
489
+ <dt>Symbol</dt>
490
+ <dd>Definition</dd>
491
+ </dl>
492
+ </definitions>
493
+ </clause>
494
+ <definitions id="L" displayorder="6"><title>4.</title>
495
+ <dl>
496
+ <dt>Symbol</dt>
497
+ <dd>Definition</dd>
498
+ </dl>
499
+ </definitions>
500
+ <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5.<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
501
+ <title depth="2">5.1.<tab/>Introduction</title>
502
+ </clause>
503
+ <clause id="O" inline-header="false" obligation="normative">
504
+ <title depth="2">5.2.<tab/>Clause 4.2</title>
505
+ </clause></clause>
506
+ </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
507
+ <title><strong>Annexe A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
508
+ <clause id="Q" inline-header="false" obligation="normative">
509
+ <title depth="2">A.1.<tab/>Annex A.1</title>
510
+ <clause id="Q1" inline-header="false" obligation="normative">
511
+ <title depth="3">A.1.1.<tab/>Annex A.1a</title>
512
+ </clause>
513
+ </clause>
514
+ </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
515
+ <title depth="1">2.<tab/>Normative References</title>
516
+ </references><clause id="S" obligation="informative" displayorder="9">
517
+ <title depth="1">Bibliographie</title>
518
+ <references id="T" obligation="informative" normative="false">
519
+ <title depth="2">Bibliography Subsection</title>
520
+ </references>
521
+ </clause>
522
+ </bibliography>
523
+ </iso-standard>
473
524
  PRESXML
474
525
 
475
526
  output = <<~"OUTPUT"
@@ -558,6 +609,14 @@ RSpec.describe IsoDoc do
558
609
  <bibdata>
559
610
  <language>zh</language>
560
611
  <script>Hans</script>
612
+ <status>
613
+ <stage>published</stage>
614
+ <substage>withdrawn</substage>
615
+ </status>
616
+ <edition>2</edition>
617
+ <ext>
618
+ <doctype>brochure</doctype>
619
+ </ext>
561
620
  </bibdata>
562
621
  <preface>
563
622
  <foreword obligation="informative">
@@ -632,6 +691,15 @@ RSpec.describe IsoDoc do
632
691
  <bibdata>
633
692
  <language current="true">zh</language>
634
693
  <script current="true">Hans</script>
694
+ <status>
695
+ <stage>published</stage>
696
+ <substage>withdrawn</substage>
697
+ </status>
698
+ <edition language=''>2</edition>
699
+ <edition language='zh'>&#x7B2C;&#x7B2C;&#x4E8C;&#x7248;</edition>
700
+ <ext>
701
+ <doctype>brochure</doctype>
702
+ </ext>
635
703
  </bibdata>
636
704
  <preface>
637
705
  <foreword obligation="informative" displayorder="1">
@@ -682,14 +750,8 @@ RSpec.describe IsoDoc do
682
750
  </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
683
751
  <title depth="1">2.<tab/>Normative References</title>
684
752
  <bibitem id="ISO712" type="standard">
685
- <title format="text/plain">Cereals and cereal products</title>
753
+ <formattedref><em>Cereals and cereal products</em>.</formattedref>
686
754
  <docidentifier>ISO 712</docidentifier>
687
- <contributor>
688
- <role type="publisher"/>
689
- <organization>
690
- <abbreviation>ISO</abbreviation>
691
- </organization>
692
- </contributor>
693
755
  </bibitem>
694
756
  </references><clause id="S" obligation="informative" displayorder="9">
695
757
  <title depth="1">Bibliography</title>
@@ -727,7 +789,7 @@ RSpec.describe IsoDoc do
727
789
  </div>
728
790
  <div>
729
791
  <h1>2.&#12288;Normative References</h1>
730
- <p id="ISO712" class="NormRef">ISO 712, <i>Cereals and cereal products</i></p>
792
+ <p id="ISO712" class="NormRef">ISO 712, <i>Cereals and cereal products</i>.</p>
731
793
  </div>
732
794
  <div id="H"><h1>3.&#12288;Terms, definitions, symbols and abbreviated terms</h1>
733
795
  <div id="I">
@@ -795,6 +857,7 @@ RSpec.describe IsoDoc do
795
857
  <stage>published</stage>
796
858
  <substage>withdrawn</substage>
797
859
  </status>
860
+ <edition>2</edition>
798
861
  <ext>
799
862
  <doctype>brochure</doctype>
800
863
  </ext>
@@ -879,10 +942,18 @@ RSpec.describe IsoDoc do
879
942
  <stage language="">published</stage><stage language="eo">publikigita</stage>
880
943
  <substage language="">withdrawn</substage><substage language="eo">fortirita</substage>
881
944
  </status>
945
+ <edition language=''>2</edition>
946
+ <edition language='eo'>eldono dua</edition>
882
947
  <ext>
883
948
  <doctype language="">brochure</doctype><doctype language="eo">bro&#x15D;uro</doctype>
884
949
  </ext>
885
- </bibdata><localized-strings><localized-string key="foreword" language="eo">Anta&#x16D;parolo</localized-string><localized-string key="introduction" language="eo">Enkonduko</localized-string><localized-string key="clause" language="eo">kla&#x16D;zo</localized-string><localized-string key="table" language="eo">tabelo</localized-string><localized-string key="source" language="eo">SOURCE</localized-string><localized-string key="modified" language="eo">modified</localized-string><localized-string key="scope" language="eo">Amplekso</localized-string><localized-string key="symbols" language="eo">Simboloj kai mallongigitaj terminoj</localized-string><localized-string key="annex" language="eo"><strong>aldono</strong></localized-string><localized-string key="normref" language="eo">Normaj cita&#x135;oj</localized-string><localized-string key="bibliography" language="eo">Bibliografio</localized-string><localized-string key="inform_annex" language="eo">informa</localized-string><localized-string key="all_parts" language="eo">&#x109;iuj partoj</localized-string><localized-string key="norm_annex" language="eo">normative</localized-string><localized-string key='figure' language='eo'>figur-etikedo duvorta</localized-string><localized-string key='example' language='eo'>Ekzempl-etikedo Duvorta</localized-string><localized-string key="note" language="eo">NOTO</localized-string><localized-string key="locality.table" language="eo">Tabelo</localized-string><localized-string key="doctype_dict.brochure" language="eo">bro&#x15D;uro</localized-string><localized-string key="doctype_dict.conference_proceedings" language="eo">konferencaktoj</localized-string><localized-string key="stage_dict.published" language="eo">publikigita</localized-string><localized-string key="substage_dict.withdrawn" language="eo">fortirita</localized-string><localized-string key="array.0" language="eo">elem1</localized-string><localized-string key="array.1" language="eo">elem2</localized-string><localized-string key="array.2.elem3" language="eo">elem4</localized-string><localized-string key="array.2.elem5" language="eo">elem6</localized-string><localized-string key="language" language="eo">eo</localized-string><localized-string key="script" language="eo">Latn</localized-string></localized-strings>
950
+ </bibdata><localized-strings><localized-string key="foreword" language="eo">Anta&#x16D;parolo</localized-string><localized-string key="introduction" language="eo">Enkonduko</localized-string><localized-string key="clause" language="eo">kla&#x16D;zo</localized-string><localized-string key="table" language="eo">tabelo</localized-string><localized-string key="source" language="eo">SOURCE</localized-string><localized-string key="modified" language="eo">modified</localized-string><localized-string key="scope" language="eo">Amplekso</localized-string><localized-string key="symbols" language="eo">Simboloj kai mallongigitaj terminoj</localized-string><localized-string key="annex" language="eo"><strong>aldono</strong></localized-string><localized-string key="normref" language="eo">Normaj cita&#x135;oj</localized-string><localized-string key="bibliography" language="eo">Bibliografio</localized-string><localized-string key="inform_annex" language="eo">informa</localized-string><localized-string key="all_parts" language="eo">&#x109;iuj partoj</localized-string><localized-string key="norm_annex" language="eo">normative</localized-string><localized-string key='figure' language='eo'>figur-etikedo duvorta</localized-string><localized-string key='example' language='eo'>Ekzempl-etikedo Duvorta</localized-string><localized-string key="note" language="eo">NOTO</localized-string><localized-string key="locality.table" language="eo">Tabelo</localized-string><localized-string key="doctype_dict.brochure" language="eo">bro&#x15D;uro</localized-string><localized-string key="doctype_dict.conference_proceedings" language="eo">konferencaktoj</localized-string><localized-string key="stage_dict.published" language="eo">publikigita</localized-string><localized-string key="substage_dict.withdrawn" language="eo">fortirita</localized-string><localized-string key="array.0" language="eo">elem1</localized-string><localized-string key="array.1" language="eo">elem2</localized-string><localized-string key="array.2.elem3" language="eo">elem4</localized-string><localized-string key="array.2.elem5" language="eo">elem6</localized-string>
951
+ <localized-string key='ordinal_keys.0' language='eo'>number</localized-string>
952
+ <localized-string key='SpelloutRules.sg' language='eo'>spellout-ordinal</localized-string>
953
+ <localized-string key='SpelloutRules.pl' language='eo'>spellout-ordinal</localized-string>
954
+ <localized-string key='edition_ordinal' language='eo'>eldono %Spellout</localized-string>
955
+ <localized-string key='edition' language='eo'>eldono</localized-string>
956
+ <localized-string key="language" language="eo">eo</localized-string><localized-string key="script" language="eo">Latn</localized-string></localized-strings>
886
957
  <preface>
887
958
  <foreword obligation="informative" displayorder="1">
888
959
  <title>Foreword</title>
@@ -935,14 +1006,8 @@ RSpec.describe IsoDoc do
935
1006
  </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
936
1007
  <title depth="1">2.<tab/>Normative References</title>
937
1008
  <bibitem id="ISO712" type="standard">
938
- <title format="text/plain">Cereals and cereal products</title>
1009
+ <formattedref><em>Cereals and cereal products</em>.</formattedref>
939
1010
  <docidentifier>ISO 712</docidentifier>
940
- <contributor>
941
- <role type="publisher"/>
942
- <organization>
943
- <abbreviation>ISO</abbreviation>
944
- </organization>
945
- </contributor>
946
1011
  </bibitem>
947
1012
  </references><clause id="S" obligation="informative" displayorder="9">
948
1013
  <title depth="1">Bibliography</title>
@@ -999,7 +1064,7 @@ RSpec.describe IsoDoc do
999
1064
  <h1>2.&#160; Normative References</h1>
1000
1065
  <p id='ISO712' class='NormRef'>
1001
1066
  ISO 712,
1002
- <i>Cereals and cereal products</i>
1067
+ <i>Cereals and cereal products</i>.
1003
1068
  </p>
1004
1069
  </div>
1005
1070
  <div id='H'>
@@ -1119,13 +1184,17 @@ RSpec.describe IsoDoc do
1119
1184
  expect(c.i18n.l10n("hello!", "fa", "Arab")).to eq "&#x61c;hello!&#x61c;"
1120
1185
  end
1121
1186
 
1122
-
1123
1187
  private
1124
1188
 
1125
1189
  def mock_i18n
1126
1190
  allow_any_instance_of(::IsoDoc::I18n)
1127
1191
  .to receive(:load_yaml)
1128
- .with("eo", "Latn", "spec/assets/i18n.yaml")
1192
+ .with("eo", "Latn", nil, nil)
1193
+ .and_return(IsoDoc::I18n.new("eo", "Latn")
1194
+ .normalise_hash(YAML.load_file("spec/assets/i18n.yaml")))
1195
+ allow_any_instance_of(::IsoDoc::I18n)
1196
+ .to receive(:load_yaml)
1197
+ .with("eo", "Latn", "spec/assets/i18n.yaml", nil)
1129
1198
  .and_return(IsoDoc::I18n.new("eo", "Latn")
1130
1199
  .normalise_hash(YAML.load_file("spec/assets/i18n.yaml")))
1131
1200
  end