metanorma-iso 2.0.7 → 2.0.8

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/iso/base.rb +0 -1
  3. data/lib/asciidoctor/iso/cleanup.rb +0 -1
  4. data/lib/asciidoctor/iso/converter.rb +0 -1
  5. data/lib/asciidoctor/iso/deprecated.rb +4 -2
  6. data/lib/asciidoctor/iso/front.rb +0 -1
  7. data/lib/asciidoctor/iso/front_id.rb +0 -1
  8. data/lib/asciidoctor/iso/section.rb +0 -1
  9. data/lib/asciidoctor/iso/validate.rb +0 -1
  10. data/lib/asciidoctor/iso/validate_image.rb +0 -1
  11. data/lib/asciidoctor/iso/validate_requirements.rb +0 -1
  12. data/lib/asciidoctor/iso/validate_section.rb +0 -1
  13. data/lib/asciidoctor/iso/validate_style.rb +0 -1
  14. data/lib/asciidoctor/iso/validate_title.rb +0 -1
  15. data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -2
  16. data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +1 -1
  17. data/lib/isodoc/iso/html/word_iso_titlepage.html +2 -2
  18. data/lib/isodoc/iso/i18n-en.yaml +1 -1
  19. data/lib/isodoc/iso/index.rb +1 -1
  20. data/lib/isodoc/iso/iso.amendment.xsl +132 -46
  21. data/lib/isodoc/iso/iso.international-standard.xsl +132 -46
  22. data/lib/isodoc/iso/metadata.rb +74 -56
  23. data/lib/isodoc/iso/presentation_xml_convert.rb +0 -2
  24. data/lib/isodoc/iso/xref.rb +4 -5
  25. data/lib/metanorma/iso/biblio.rng +25 -2
  26. data/lib/metanorma/iso/cleanup.rb +5 -5
  27. data/lib/metanorma/iso/front_id.rb +28 -11
  28. data/lib/metanorma/iso/version.rb +1 -1
  29. data/spec/isodoc/i18n_spec.rb +111 -114
  30. data/spec/isodoc/iso_spec.rb +42 -26
  31. data/spec/metanorma/amd_spec.rb +39 -16
  32. data/spec/metanorma/base_spec.rb +8 -0
  33. data/spec/metanorma/blocks_spec.rb +4 -4
  34. data/spec/metanorma/cleanup_spec.rb +11 -11
  35. data/spec/metanorma/section_spec.rb +3 -3
  36. data/spec/spec_helper.rb +1 -1
  37. metadata +2 -2
@@ -380,11 +380,7 @@ RSpec.describe IsoDoc do
380
380
  <p id="A">This is a preamble</p>
381
381
  </foreword>
382
382
  <introduction id="B" obligation="informative" displayorder='2'>
383
- <title depth="1">
384
- 0
385
- <tab/>
386
- Introduction
387
- </title>
383
+ <title depth="1">0<tab/>Introduction</title>
388
384
  <clause id="C" inline-header="false" obligation="informative">
389
385
  <title depth="2">0.1<tab/>Introduction Subsection</title>
390
386
  </clause>
@@ -1146,40 +1142,31 @@ RSpec.describe IsoDoc do
1146
1142
  <doctype language='zh'>&#x56FD;&#x9645;&#x6807;&#x51C6;</doctype>
1147
1143
  </ext>
1148
1144
  </bibdata>
1145
+
1149
1146
  <preface>
1150
1147
  <foreword obligation="informative" displayorder='1'>
1151
1148
  <title>Foreword</title>
1152
1149
  <p id="A">This is a preamble</p>
1153
1150
  </foreword>
1154
1151
  <introduction id="B" obligation="informative" displayorder='2'>
1155
- <title depth="1">0
1156
- <tab/>
1157
- Introduction</title>
1152
+ <title depth="1">0<tab/>Introduction</title>
1158
1153
  <clause id="C" inline-header="false" obligation="informative">
1159
- <title depth="2">0.1
1160
- <tab/>
1161
- Introduction Subsection</title>
1154
+ <title depth="2">0.1<tab/>Introduction Subsection</title>
1162
1155
  </clause>
1163
1156
  <p>This is patent boilerplate</p>
1164
1157
  </introduction>
1165
1158
  </preface>
1166
1159
  <sections>
1167
1160
  <clause id="D" obligation="normative" type="scope" displayorder='3'>
1168
- <title depth="1">1
1169
- <tab/>
1170
- Scope</title>
1161
+ <title depth="1">1<tab/>Scope</title>
1171
1162
  <p id="E">
1172
- <eref bibitemid="ISO712" type="inline"><locality type="table"><referenceFrom>1</referenceFrom><referenceTo>1</referenceTo></locality>ISO 712、第1–1表</eref>
1163
+ <eref bibitemid="ISO712" type="inline"><locality type="table"><referenceFrom>1</referenceFrom><referenceTo>1</referenceTo></locality>ISO 712, 第1–1表</eref>
1173
1164
  </p>
1174
1165
  </clause>
1175
1166
  <clause id="H" obligation="normative" displayorder='5'>
1176
- <title depth="1">3
1177
- <tab/>
1178
- Terms, definitions, symbols and abbreviated terms</title>
1167
+ <title depth="1">3<tab/>Terms, definitions, symbols and abbreviated terms</title>
1179
1168
  <terms id="I" obligation="normative">
1180
- <title depth="2">3.1
1181
- <tab/>
1182
- Normal Terms</title>
1169
+ <title depth="2">3.1<tab/>Normal Terms</title>
1183
1170
  <term id="J">
1184
1171
  <name>3.1.1</name>
1185
1172
  <preferred><strong>Term2</strong></preferred>
@@ -1201,18 +1188,12 @@ RSpec.describe IsoDoc do
1201
1188
  </dl>
1202
1189
  </definitions>
1203
1190
  <clause id="M" inline-header="false" obligation="normative" displayorder='7'>
1204
- <title depth="1">5
1205
- <tab/>
1206
- Clause 4</title>
1191
+ <title depth="1">5<tab/>Clause 4</title>
1207
1192
  <clause id="N" inline-header="false" obligation="normative">
1208
- <title depth="2">5.1
1209
- <tab/>
1210
- Introduction</title>
1193
+ <title depth="2">5.1<tab/>Introduction</title>
1211
1194
  </clause>
1212
1195
  <clause id="O" inline-header="false" obligation="normative">
1213
- <title depth="2">5.2
1214
- <tab/>
1215
- Clause 4.2</title>
1196
+ <title depth="2">5.2<tab/>Clause 4.2</title>
1216
1197
  </clause>
1217
1198
  </clause>
1218
1199
  </sections>
@@ -1224,26 +1205,18 @@ RSpec.describe IsoDoc do
1224
1205
  <br/>
1225
1206
  <strong>Annex</strong></title>
1226
1207
  <clause id="Q" inline-header="false" obligation="normative">
1227
- <title depth="2">A.1
1228
- <tab/>
1229
- Annex A.1</title>
1208
+ <title depth="2">A.1<tab/>Annex A.1</title>
1230
1209
  <clause id="Q1" inline-header="false" obligation="normative">
1231
- <title depth="3">A.1.1
1232
- <tab/>
1233
- Annex A.1a</title>
1210
+ <title depth="3">A.1.1<tab/>Annex A.1a</title>
1234
1211
  </clause>
1235
1212
  </clause>
1236
1213
  <appendix id="Q2" inline-header="false" obligation="normative">
1237
- <title depth="2">附录1
1238
- <tab/>
1239
- An Appendix</title>
1214
+ <title depth="2">附录1<tab/>An Appendix</title>
1240
1215
  </appendix>
1241
1216
  </annex>
1242
1217
  <bibliography>
1243
1218
  <references id="R" normative="true" obligation="informative" displayorder='4'>
1244
- <title depth="1">2
1245
- <tab/>
1246
- Normative References</title>
1219
+ <title depth="1">2<tab/>Normative References</title>
1247
1220
  <bibitem id="ISO712" type="standard">
1248
1221
  <title format="text/plain">Cereals and cereal products</title>
1249
1222
  <docidentifier>ISO 712</docidentifier>
@@ -1267,78 +1240,102 @@ RSpec.describe IsoDoc do
1267
1240
 
1268
1241
  html = <<~OUTPUT
1269
1242
  #{HTML_HDR.gsub(/"en"/, '"zh"')}
1270
- <br/>
1271
- <div>
1272
- <h1 class="ForewordTitle">Foreword</h1>
1273
- <p id="A">This is a preamble</p>
1274
- </div>
1275
- <br/>
1276
- <div class="Section3" id="B">
1277
- <h1 class="IntroTitle">0 &#12288; Introduction</h1>
1278
- <div id="C">
1279
- <h2>0.1 &#12288; Introduction Subsection</h2>
1280
- </div>
1281
- <p>This is patent boilerplate</p>
1282
- </div>
1283
- <p class="zzSTDTitle1"/>
1284
- <div id="D">
1285
- <h1>1 &#12288; Scope</h1>
1286
- <p id="E"><a href='#ISO712'>ISO 712&#12289;&#31532;1&#8211;1&#34920;</a></p>
1287
- </div>
1288
- <div>
1289
- <h1>2 &#12288; Normative References</h1>
1290
- <p id="ISO712" class="NormRef">ISO 712, <i>Cereals and cereal products</i></p>
1291
- </div>
1292
- <div id="H">
1293
- <h1>3 &#12288; Terms, definitions, symbols and abbreviated terms</h1>
1294
- <div id="I"><h2>3.1 &#12288; Normal Terms</h2>
1295
- <p class="TermNum" id="J">3.1.1</p>
1296
- <p class="Terms" style="text-align:left;"><b>Term2</b></p>
1297
- </div><div id="K">
1298
- <span class='zzMoveToFollowing'>
1299
- <b>3.2&#12288;</b>
1300
- </span>
1301
- <dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
1302
- </div></div>
1303
- <div id="L" class="Symbols">
1304
- <h1>4</h1>
1305
- <dl>
1306
- <dt>
1307
- <p>Symbol</p>
1308
- </dt>
1309
- <dd>Definition</dd>
1310
- </dl>
1311
- </div>
1312
- <div id="M">
1313
- <h1>5 &#12288; Clause 4</h1>
1314
- <div id="N">
1315
- <h2>5.1 &#12288; Introduction</h2>
1316
- </div>
1317
- <div id="O">
1318
- <h2>5.2 &#12288; Clause 4.2</h2>
1319
- </div>
1320
- </div>
1321
- <br/>
1322
- <div id="P" class="Section3">
1323
- <h1 class="Annex"><b>&#38468;&#20214;A</b><br/>&#65288;&#35268;&#33539;&#24615;&#38468;&#24405;&#65289;<br/><br/><b>Annex</b></h1>
1324
- <div id="Q">
1325
- <h2>A.1 &#12288; Annex A.1</h2>
1326
- <div id="Q1"><h3>A.1.1 &#12288; Annex A.1a</h3></div>
1327
- </div>
1328
- <div id="Q2">
1329
- <h2>&#38468;&#24405;1 &#12288; An Appendix</h2>
1330
- </div>
1331
- </div>
1332
- <br/>
1333
- <div>
1334
- <h1 class="Section3">Bibliography</h1>
1335
- <div>
1336
- <h2 class="Section3">Bibliography Subsection</h2>
1337
- </div>
1338
- </div>
1339
- </div>
1340
- </body>
1341
- </html>
1243
+ <br/>
1244
+ <div>
1245
+ <h1 class='ForewordTitle'>Foreword</h1>
1246
+ <p id='A'>This is a preamble</p>
1247
+ </div>
1248
+ <br/>
1249
+ <div class='Section3' id='B'>
1250
+ <h1 class='IntroTitle'>0 Introduction</h1>
1251
+ <div id='C'>
1252
+ <h2>0.1 Introduction Subsection</h2>
1253
+ </div>
1254
+ <p>This is patent boilerplate</p>
1255
+ </div>
1256
+ <p class='zzSTDTitle1'/>
1257
+ <div id='D'>
1258
+ <h1>1 Scope</h1>
1259
+ <p id='E'>
1260
+ <a href='#ISO712'>ISO 712, 第1–1表</a>
1261
+ </p>
1262
+ </div>
1263
+ <div>
1264
+ <h1>2 Normative References</h1>
1265
+ <p id='ISO712' class='NormRef'>
1266
+ ISO 712,
1267
+ <i>Cereals and cereal products</i>
1268
+ </p>
1269
+ </div>
1270
+ <div id='H'>
1271
+ <h1>3 Terms, definitions, symbols and abbreviated terms</h1>
1272
+ <div id='I'>
1273
+ <h2>3.1 Normal Terms</h2>
1274
+ <p class='TermNum' id='J'>3.1.1</p>
1275
+ <p class='Terms' style='text-align:left;'>
1276
+ <b>Term2</b>
1277
+ </p>
1278
+ </div>
1279
+ <div id='K'>
1280
+ <span class='zzMoveToFollowing'>
1281
+ <b>3.2 </b>
1282
+ </span>
1283
+ <dl>
1284
+ <dt>
1285
+ <p>Symbol</p>
1286
+ </dt>
1287
+ <dd>Definition</dd>
1288
+ </dl>
1289
+ </div>
1290
+ </div>
1291
+ <div id='L' class='Symbols'>
1292
+ <h1>4</h1>
1293
+ <dl>
1294
+ <dt>
1295
+ <p>Symbol</p>
1296
+ </dt>
1297
+ <dd>Definition</dd>
1298
+ </dl>
1299
+ </div>
1300
+ <div id='M'>
1301
+ <h1>5 Clause 4</h1>
1302
+ <div id='N'>
1303
+ <h2>5.1 Introduction</h2>
1304
+ </div>
1305
+ <div id='O'>
1306
+ <h2>5.2 Clause 4.2</h2>
1307
+ </div>
1308
+ </div>
1309
+ <br/>
1310
+ <div id='P' class='Section3'>
1311
+ <h1 class='Annex'>
1312
+ <b>附件A</b>
1313
+ <br/>
1314
+ (规范性附录)
1315
+ <br/>
1316
+ <br/>
1317
+ <b>Annex</b>
1318
+ </h1>
1319
+ <div id='Q'>
1320
+ <h2>A.1 Annex A.1</h2>
1321
+ <div id='Q1'>
1322
+ <h3>A.1.1 Annex A.1a</h3>
1323
+ </div>
1324
+ </div>
1325
+ <div id='Q2'>
1326
+ <h2>附录1 An Appendix</h2>
1327
+ </div>
1328
+ </div>
1329
+ <br/>
1330
+ <div>
1331
+ <h1 class='Section3'>Bibliography</h1>
1332
+ <div>
1333
+ <h2 class='Section3'>Bibliography Subsection</h2>
1334
+ </div>
1335
+ </div>
1336
+ </div>
1337
+ </body>
1338
+ </html>
1342
1339
  OUTPUT
1343
1340
  expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1344
1341
  .convert("test", input, true))
@@ -15,9 +15,12 @@ RSpec.describe IsoDoc::Iso do
15
15
  </iso-standard>
16
16
  INPUT
17
17
  html = File.read("test.html", encoding: "utf-8")
18
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
19
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
20
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
18
+ expect(html)
19
+ .to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
20
+ expect(html)
21
+ .to match(%r[blockquote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
22
+ expect(html)
23
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
21
24
  end
22
25
 
23
26
  it "processes isodoc as ISO: alt HTML output" do
@@ -33,27 +36,34 @@ RSpec.describe IsoDoc::Iso do
33
36
  </iso-standard>
34
37
  INPUT
35
38
  html = File.read("test.html", encoding: "utf-8")
36
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
37
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
38
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
39
+ expect(html)
40
+ .to match(%r[\bpre[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
41
+ expect(html)
42
+ .to match(%r[blockquote[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
43
+ expect(html)
44
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
39
45
  end
40
46
 
41
47
  it "processes isodoc as ISO: Chinese HTML output" do
42
- IsoDoc::Iso::HtmlConvert.new(script: "Hans").convert("test", <<~"INPUT", false)
43
- <iso-standard xmlns="http://riboseinc.com/isoxml">
44
- <preface>
45
- <foreword>
46
- <note>
47
- <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
48
- </note>
49
- </foreword>
50
- </preface>
51
- </iso-standard>
52
- INPUT
48
+ IsoDoc::Iso::HtmlConvert.new(script: "Hans")
49
+ .convert("test", <<~"INPUT", false)
50
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
51
+ <preface>
52
+ <foreword>
53
+ <note>
54
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
55
+ </note>
56
+ </foreword>
57
+ </preface>
58
+ </iso-standard>
59
+ INPUT
53
60
  html = File.read("test.html", encoding: "utf-8")
54
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
55
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Source Han Sans", serif;]m)
56
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Source Han Sans", sans-serif;]m)
61
+ expect(html)
62
+ .to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
63
+ expect(html)
64
+ .to match(%r[blockquote[^{]+\{[^{]+font-family: "Source Han Sans", serif;]m)
65
+ expect(html)
66
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Source Han Sans", sans-serif;]m)
57
67
  end
58
68
 
59
69
  it "processes isodoc as ISO: user nominated fonts" do
@@ -72,9 +82,12 @@ RSpec.describe IsoDoc::Iso do
72
82
  </iso-standard>
73
83
  INPUT
74
84
  html = File.read("test.html", encoding: "utf-8")
75
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: Andale Mono;]m)
76
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: Zapf Chancery;]m)
77
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: Comic Sans;]m)
85
+ expect(html)
86
+ .to match(%r[\bpre[^{]+\{[^{]+font-family: Andale Mono;]m)
87
+ expect(html)
88
+ .to match(%r[blockquote[^{]+\{[^{]+font-family: Zapf Chancery;]m)
89
+ expect(html)
90
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: Comic Sans;]m)
78
91
  end
79
92
 
80
93
  it "processes isodoc as ISO: Word output" do
@@ -90,9 +103,12 @@ RSpec.describe IsoDoc::Iso do
90
103
  </iso-standard>
91
104
  INPUT
92
105
  html = File.read("test.doc", encoding: "utf-8")
93
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
94
- expect(html).to match(%r[Quote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
95
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
106
+ expect(html)
107
+ .to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
108
+ expect(html)
109
+ .to match(%r[Quote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
110
+ expect(html)
111
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
96
112
  end
97
113
 
98
114
  it "does not include IEV in references" do
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Metanorma::ISO do
4
4
  it "processes amendment sections" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
5
+ input = <<~INPUT
6
6
  #{AMD_BLANK_HDR}
7
7
  == Foreword
8
8
 
@@ -54,6 +54,7 @@ RSpec.describe Metanorma::ISO do
54
54
 
55
55
  === Bibliography Subsection
56
56
  INPUT
57
+ output = <<~OUTPUT
57
58
  #{BLANK_HDR.sub(%r{<doctype>article</doctype>}, '<doctype>amendment</doctype>')}
58
59
  <sections>
59
60
  <clause id="_" obligation="normative">
@@ -127,10 +128,12 @@ RSpec.describe Metanorma::ISO do
127
128
  </annex>
128
129
  </iso-standard>
129
130
  OUTPUT
131
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
132
+ .to be_equivalent_to xmlpp(output)
130
133
  end
131
134
 
132
135
  it "processes default metadata, amendment" do
133
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
136
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
134
137
  = Document title
135
138
  Author
136
139
  :docfile: test.adoc
@@ -182,7 +185,7 @@ RSpec.describe Metanorma::ISO do
182
185
  :updates-document-type: international-standard
183
186
  INPUT
184
187
 
185
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
188
+ output = <<~OUTPUT
186
189
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
187
190
  <bibdata type="standard">
188
191
  <title format="text/plain" language="en" type="main">Introduction — Main Title — Title — Title Part — Mass fraction of
@@ -207,6 +210,7 @@ RSpec.describe Metanorma::ISO do
207
210
  de transport
208
211
  </title>
209
212
  <docidentifier type="ISO">ISO 17301-1:2016/PreNP Amd 1</docidentifier>
213
+ <docidentifier type='iso-undated'>ISO 17301-1/PreNP Amd 1</docidentifier>
210
214
  <docidentifier type="iso-with-lang">ISO 17301-1:2016/PreNP Amd 1(E)</docidentifier>
211
215
  <docidentifier type="iso-reference">ISO 17301-1:2016/PreNP Amd 1:2017(E)</docidentifier>
212
216
  <docnumber>17301</docnumber>
@@ -278,10 +282,12 @@ RSpec.describe Metanorma::ISO do
278
282
  <sections/>
279
283
  </iso-standard>
280
284
  OUTPUT
285
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
286
+ .to be_equivalent_to xmlpp(output)
281
287
  end
282
288
 
283
289
  it "processes metadata, amendment, stage 30" do
284
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
290
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
285
291
  = Document title
286
292
  Author
287
293
  :docfile: test.adoc
@@ -295,11 +301,11 @@ RSpec.describe Metanorma::ISO do
295
301
  :updates: ISO 17301-1:2030
296
302
  :amendment-number: 1
297
303
  INPUT
298
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
299
-
304
+ output = <<~OUTPUT
300
305
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
301
306
  <bibdata type="standard">
302
307
  <docidentifier type="ISO">ISO 17301-1:2030/CD Amd 1</docidentifier>
308
+ <docidentifier type='iso-undated'>ISO 17301-1/CD Amd 1</docidentifier>
303
309
  <docidentifier type="iso-with-lang">ISO 17301-1:2030/CD Amd 1(E)</docidentifier>
304
310
  <docidentifier type="iso-reference">ISO 17301-1:2030/CD Amd 1(E)</docidentifier>
305
311
  <docnumber>17301</docnumber>
@@ -348,10 +354,12 @@ RSpec.describe Metanorma::ISO do
348
354
  <sections/>
349
355
  </iso-standard>
350
356
  OUTPUT
357
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
358
+ .to be_equivalent_to xmlpp(output)
351
359
  end
352
360
 
353
361
  it "processes metadata, amendment, stage 40" do
354
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
362
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
355
363
  = Document title
356
364
  Author
357
365
  :docfile: test.adoc
@@ -365,10 +373,11 @@ RSpec.describe Metanorma::ISO do
365
373
  :updates: ISO 17301-1:2030
366
374
  :amendment-number: 1
367
375
  INPUT
368
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
376
+ output = <<~OUTPUT
369
377
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
370
378
  <bibdata type="standard">
371
379
  <docidentifier type="ISO">ISO 17301-1:2030/DAmd 1</docidentifier>
380
+ <docidentifier type='iso-undated'>ISO 17301-1/DAmd 1</docidentifier>
372
381
  <docidentifier type="iso-with-lang">ISO 17301-1:2030/DAmd 1(E)</docidentifier>
373
382
  <docidentifier type="iso-reference">ISO 17301-1:2030/DAmd 1(E)</docidentifier>
374
383
  <docnumber>17301</docnumber>
@@ -417,10 +426,12 @@ RSpec.describe Metanorma::ISO do
417
426
  <sections/>
418
427
  </iso-standard>
419
428
  OUTPUT
429
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
430
+ .to be_equivalent_to xmlpp(output)
420
431
  end
421
432
 
422
433
  it "processes metadata, amendment, published" do
423
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
434
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
424
435
  = Document title
425
436
  Author
426
437
  :docfile: test.adoc
@@ -433,10 +444,11 @@ RSpec.describe Metanorma::ISO do
433
444
  :updates: ISO 17301-1:2030
434
445
  :amendment-number: 1
435
446
  INPUT
436
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
447
+ output = <<~OUTPUT
437
448
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
438
449
  <bibdata type="standard">
439
450
  <docidentifier type="ISO">ISO 17301-1:2030/Amd 1</docidentifier>
451
+ <docidentifier type='iso-undated'>ISO 17301-1/Amd 1</docidentifier>
440
452
  <docidentifier type="iso-with-lang">ISO 17301-1:2030/Amd 1(E)</docidentifier>
441
453
  <docidentifier type="iso-reference">ISO 17301-1:2030/Amd 1(E)</docidentifier>
442
454
  <docnumber>17301</docnumber>
@@ -485,10 +497,12 @@ RSpec.describe Metanorma::ISO do
485
497
  <sections/>
486
498
  </iso-standard>
487
499
  OUTPUT
500
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
501
+ .to be_equivalent_to xmlpp(output)
488
502
  end
489
503
 
490
504
  it "processes metadata, corrigendum, stage 30" do
491
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
505
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
492
506
  = Document title
493
507
  Author
494
508
  :docfile: test.adoc
@@ -502,10 +516,11 @@ RSpec.describe Metanorma::ISO do
502
516
  :updates: ISO 17301-1:2030
503
517
  :corrigendum-number: 3
504
518
  INPUT
505
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
519
+ output = <<~OUTPUT
506
520
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
507
521
  <bibdata type="standard">
508
522
  <docidentifier type="ISO">ISO 17301-1:2030/CD Cor.3</docidentifier>
523
+ <docidentifier type='iso-undated'>ISO 17301-1/CD Cor.3</docidentifier>
509
524
  <docidentifier type="iso-with-lang">ISO 17301-1:2030/CD Cor.3(E)</docidentifier>
510
525
  <docidentifier type="iso-reference">ISO 17301-1:2030/CD Cor.3(E)</docidentifier>
511
526
  <docnumber>17301</docnumber>
@@ -554,10 +569,12 @@ RSpec.describe Metanorma::ISO do
554
569
  <sections/>
555
570
  </iso-standard>
556
571
  OUTPUT
572
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
573
+ .to be_equivalent_to xmlpp(output)
557
574
  end
558
575
 
559
576
  it "processes metadata, corrigendum, stage 50" do
560
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
577
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
561
578
  = Document title
562
579
  Author
563
580
  :docfile: test.adoc
@@ -571,10 +588,11 @@ RSpec.describe Metanorma::ISO do
571
588
  :updates: ISO 17301-1:2030
572
589
  :corrigendum-number: 3
573
590
  INPUT
574
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
591
+ output = <<~OUTPUT
575
592
  <iso-standard xmlns='https://www.metanorma.org/ns/iso' type="semantic" version="#{Metanorma::ISO::VERSION}">
576
593
  <bibdata type='standard'>
577
594
  <docidentifier type='ISO'>ISO 17301-1:2030/FDCor.3</docidentifier>
595
+ <docidentifier type='iso-undated'>ISO 17301-1/FDCor.3</docidentifier>
578
596
  <docidentifier type='iso-with-lang'>ISO 17301-1:2030/FDCor.3(E)</docidentifier>
579
597
  <docidentifier type='iso-reference'>ISO 17301-1:2030/FDCor.3(E)</docidentifier>
580
598
  <docnumber>17301</docnumber>
@@ -623,10 +641,12 @@ RSpec.describe Metanorma::ISO do
623
641
  <sections/>
624
642
  </iso-standard>
625
643
  OUTPUT
644
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
645
+ .to be_equivalent_to xmlpp(output)
626
646
  end
627
647
 
628
648
  it "processes metadata, corrigendum, published" do
629
- output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
649
+ input = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
630
650
  = Document title
631
651
  Author
632
652
  :docfile: test.adoc
@@ -639,10 +659,11 @@ RSpec.describe Metanorma::ISO do
639
659
  :updates: ISO 17301-1:2030
640
660
  :corrigendum-number: 3
641
661
  INPUT
642
- expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
662
+ output = <<~OUTPUT
643
663
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
644
664
  <bibdata type="standard">
645
665
  <docidentifier type="ISO">ISO 17301-1:2030/Cor.3</docidentifier>
666
+ <docidentifier type='iso-undated'>ISO 17301-1/Cor.3</docidentifier>
646
667
  <docidentifier type="iso-with-lang">ISO 17301-1:2030/Cor.3(E)</docidentifier>
647
668
  <docidentifier type="iso-reference">ISO 17301-1:2030/Cor.3(E)</docidentifier>
648
669
  <docnumber>17301</docnumber>
@@ -691,5 +712,7 @@ RSpec.describe Metanorma::ISO do
691
712
  <sections/>
692
713
  </iso-standard>
693
714
  OUTPUT
715
+ expect(xmlpp(input.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
716
+ .to be_equivalent_to xmlpp(output)
694
717
  end
695
718
  end