metanorma-standoc 2.2.6 → 2.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/lib/metanorma/standoc/base.rb +3 -5
  3. data/lib/metanorma/standoc/biblio.rng +5 -0
  4. data/lib/metanorma/standoc/cleanup.rb +17 -17
  5. data/lib/metanorma/standoc/cleanup_amend.rb +2 -2
  6. data/lib/metanorma/standoc/cleanup_biblio.rb +2 -1
  7. data/lib/metanorma/standoc/cleanup_maths.rb +12 -4
  8. data/lib/metanorma/standoc/cleanup_section.rb +19 -9
  9. data/lib/metanorma/standoc/cleanup_symbols.rb +14 -7
  10. data/lib/metanorma/standoc/cleanup_text.rb +10 -4
  11. data/lib/metanorma/standoc/cleanup_toc.rb +1 -2
  12. data/lib/metanorma/standoc/cleanup_xref.rb +55 -14
  13. data/lib/metanorma/standoc/inline.rb +27 -12
  14. data/lib/metanorma/standoc/isodoc.rng +46 -12
  15. data/lib/metanorma/standoc/ref_utility.rb +1 -0
  16. data/lib/metanorma/standoc/render.rb +10 -1
  17. data/lib/metanorma/standoc/section.rb +10 -3
  18. data/lib/metanorma/standoc/utils.rb +6 -1
  19. data/lib/metanorma/standoc/validate.rb +1 -1
  20. data/lib/metanorma/standoc/version.rb +1 -1
  21. data/metanorma-standoc.gemspec +5 -2
  22. metadata +4 -128
  23. data/.github/workflows/automerge.yml +0 -31
  24. data/.github/workflows/rake.yml +0 -15
  25. data/.github/workflows/release.yml +0 -24
  26. data/Rakefile +0 -8
  27. data/bin/rspec +0 -18
  28. data/spec/assets/a1.adoc +0 -8
  29. data/spec/assets/a2.adoc +0 -10
  30. data/spec/assets/a3.adoc +0 -9
  31. data/spec/assets/a3a.adoc +0 -7
  32. data/spec/assets/a4.adoc +0 -4
  33. data/spec/assets/boilerplate.xml +0 -4
  34. data/spec/assets/codes.yml +0 -695
  35. data/spec/assets/correct.png +0 -0
  36. data/spec/assets/corrupt.png +0 -0
  37. data/spec/assets/header.html +0 -7
  38. data/spec/assets/html-override.css +0 -1
  39. data/spec/assets/html.scss +0 -13
  40. data/spec/assets/htmlcover.html +0 -4
  41. data/spec/assets/htmlintro.html +0 -5
  42. data/spec/assets/i18n.yaml +0 -17
  43. data/spec/assets/iso.adoc +0 -10
  44. data/spec/assets/iso.headless.html +0 -33
  45. data/spec/assets/iso.xml +0 -8
  46. data/spec/assets/iso123.rxl +0 -107
  47. data/spec/assets/rice_image1.png +0 -0
  48. data/spec/assets/scripts.html +0 -3
  49. data/spec/assets/std.css +0 -2
  50. data/spec/assets/word-override.css +0 -1
  51. data/spec/assets/word.scss +0 -13
  52. data/spec/assets/wordcover.html +0 -3
  53. data/spec/assets/wordintro.html +0 -4
  54. data/spec/assets/xref_error.adoc +0 -8
  55. data/spec/examples/103_01_02.html +0 -247
  56. data/spec/examples/codes_table.html +0 -3174
  57. data/spec/examples/datamodel/address_class_profile.adoc +0 -5
  58. data/spec/examples/datamodel/address_class_profile.presentation.xml +0 -14
  59. data/spec/examples/datamodel/address_component_profile.adoc +0 -5
  60. data/spec/examples/datamodel/blank_definition_profile.adoc +0 -5
  61. data/spec/examples/datamodel/common_models_diagram.adoc +0 -5
  62. data/spec/examples/datamodel/models/models/AddressClassProfile.yml +0 -90
  63. data/spec/examples/datamodel/models/models/AddressComponentProfile.yml +0 -63
  64. data/spec/examples/datamodel/models/models/AddressComponentSpecification.yml +0 -15
  65. data/spec/examples/datamodel/models/models/AddressProfile.yml +0 -36
  66. data/spec/examples/datamodel/models/models/AttributeProfile.yml +0 -32
  67. data/spec/examples/datamodel/models/models/InterchangeAddressClassProfile.yml +0 -79
  68. data/spec/examples/datamodel/models/models/Localization copy.yml +0 -23
  69. data/spec/examples/datamodel/models/models/Localization.yml +0 -23
  70. data/spec/examples/datamodel/models/models/ProfileCompliantAddress.yml +0 -36
  71. data/spec/examples/datamodel/models/models/ProfileCompliantAddressComponent.yml +0 -15
  72. data/spec/examples/datamodel/models/models/Signature.yml +0 -20
  73. data/spec/examples/datamodel/models/models/SignatureBlankDefinition.yml +0 -20
  74. data/spec/examples/datamodel/models/models/TextDirectionCode copy.yml +0 -16
  75. data/spec/examples/datamodel/models/models/TextDirectionCode.yml +0 -16
  76. data/spec/examples/datamodel/models/models/Validity.yml +0 -14
  77. data/spec/examples/datamodel/models/models/iso19160-1/Address.yml +0 -22
  78. data/spec/examples/datamodel/models/models/iso19160-1/AddressComponent.yml +0 -2
  79. data/spec/examples/datamodel/models/style.uml.inc +0 -37
  80. data/spec/examples/datamodel/models/views/CommonModels.yml +0 -9
  81. data/spec/examples/datamodel/models/views/TopDown.yml +0 -62
  82. data/spec/examples/datamodel/top_down_diagram.adoc +0 -5
  83. data/spec/examples/english.yaml +0 -69
  84. data/spec/examples/iso_123_.xml +0 -46
  85. data/spec/examples/iso_123_all_parts.xml +0 -46
  86. data/spec/examples/iso_123_no_year_note.xml +0 -47
  87. data/spec/examples/iso_124_.xml +0 -42
  88. data/spec/examples/iso_216_.xml +0 -48
  89. data/spec/examples/iso_iec_12382_.xml +0 -49
  90. data/spec/examples/rice.adoc +0 -715
  91. data/spec/examples/rice.preview.html +0 -1877
  92. data/spec/examples/rice.sh +0 -4
  93. data/spec/examples/rice_images/rice_image1.png +0 -0
  94. data/spec/examples/rice_images/rice_image2.png +0 -0
  95. data/spec/examples/rice_images/rice_image3_1.png +0 -0
  96. data/spec/examples/rice_images/rice_image3_2.png +0 -0
  97. data/spec/examples/rice_images/rice_image3_3.png +0 -0
  98. data/spec/fixtures/action_schemaexpg1.svg +0 -122
  99. data/spec/fixtures/datamodel_description_sections_tree.xml +0 -327
  100. data/spec/fixtures/diagram_definitions.lutaml +0 -22
  101. data/spec/fixtures/macros_datamodel/address_class_profile.xml +0 -149
  102. data/spec/fixtures/macros_datamodel/address_component_profile.xml +0 -71
  103. data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +0 -51
  104. data/spec/fixtures/macros_datamodel/common_models_diagram.xml +0 -7
  105. data/spec/fixtures/macros_datamodel/top_down_diagram.xml +0 -7
  106. data/spec/fixtures/test.exp +0 -121
  107. data/spec/fixtures/test.xmi +0 -9250
  108. data/spec/metanorma/base_spec.rb +0 -1125
  109. data/spec/metanorma/biblio_spec.rb +0 -1012
  110. data/spec/metanorma/blank_spec.rb +0 -37
  111. data/spec/metanorma/blocks_spec.rb +0 -1784
  112. data/spec/metanorma/cleanup_blocks_spec.rb +0 -1099
  113. data/spec/metanorma/cleanup_sections_spec.rb +0 -1849
  114. data/spec/metanorma/cleanup_spec.rb +0 -1931
  115. data/spec/metanorma/cleanup_terms_spec.rb +0 -1543
  116. data/spec/metanorma/datamodel/attributes_table_preprocessor_spec.rb +0 -111
  117. data/spec/metanorma/datamodel/diagram_preprocessor_spec.rb +0 -72
  118. data/spec/metanorma/inline_spec.rb +0 -785
  119. data/spec/metanorma/isobib_cache_spec.rb +0 -742
  120. data/spec/metanorma/lists_spec.rb +0 -232
  121. data/spec/metanorma/macros_concept_spec.rb +0 -1052
  122. data/spec/metanorma/macros_json2text_spec.rb +0 -10
  123. data/spec/metanorma/macros_plantuml_spec.rb +0 -402
  124. data/spec/metanorma/macros_spec.rb +0 -1183
  125. data/spec/metanorma/macros_yaml2text_spec.rb +0 -10
  126. data/spec/metanorma/processor_spec.rb +0 -96
  127. data/spec/metanorma/refs_spec.rb +0 -2807
  128. data/spec/metanorma/reqt_spec.rb +0 -130
  129. data/spec/metanorma/section_spec.rb +0 -1325
  130. data/spec/metanorma/table_spec.rb +0 -474
  131. data/spec/metanorma/validate_spec.rb +0 -886
  132. data/spec/spec_helper.rb +0 -290
  133. data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +0 -781
  134. data/spec/vcr_cassettes/bsi16341.yml +0 -486
  135. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +0 -611
  136. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +0 -149
  137. data/spec/vcr_cassettes/hide_refs.yml +0 -587
  138. data/spec/vcr_cassettes/isobib_get_123.yml +0 -149
  139. data/spec/vcr_cassettes/isobib_get_123_1.yml +0 -295
  140. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +0 -385
  141. data/spec/vcr_cassettes/isobib_get_123_2.yml +0 -295
  142. data/spec/vcr_cassettes/isobib_get_123_2001.yml +0 -149
  143. data/spec/vcr_cassettes/isobib_get_124.yml +0 -149
  144. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +0 -367
  145. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +0 -560
  146. data/spec/vcr_cassettes/std-link.yml +0 -149
@@ -1,10 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "Json2Text macros" do
4
- it_behaves_like "structured data 2 text preprocessor" do
5
- let(:extention) { "json" }
6
- def transform_to_type(data)
7
- data.to_json
8
- end
9
- end
10
- end
@@ -1,402 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Metanorma::Standoc do
4
- it "processes the PlantUML macro" do
5
- input = <<~INPUT
6
- #{ASCIIDOC_BLANK_HDR}
7
-
8
- [plantuml]
9
- ....
10
- @startuml
11
- Alice -> Bob: Authentication Request
12
- Bob --> Alice: Authentication Response
13
-
14
- Alice -> Bob: Another authentication Request
15
- Alice <-- Bob: another authentication Response
16
- @enduml
17
- ....
18
-
19
- [plantuml]
20
- ....
21
- Alice -> Bob: Authentication Request
22
- Bob --> Alice: Authentication Response
23
-
24
- Alice -> Bob: Another authentication Request
25
- Alice <-- Bob: another authentication Response
26
- ....
27
-
28
- [plantuml]
29
- ....
30
- @startuml filename
31
- Alice -> Bob: Authentication Request
32
- Bob --> Alice: Authentication Response
33
-
34
- Alice -> Bob: Another authentication Request
35
- Alice <-- Bob: another authentication Response
36
- @enduml
37
- ....
38
- INPUT
39
- output = <<~OUTPUT
40
- #{BLANK_HDR}
41
- <sections><figure id="_">
42
- <image src="plantuml/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
43
- </figure>
44
- <figure id="_">
45
- <image src="plantuml/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
46
- </figure>
47
- <figure id="_">
48
- <image src="plantuml/filename.png" id="_" mimetype="image/png" height="auto" width="auto"/>
49
- </figure>
50
- </sections>
51
- </standard-document>
52
- OUTPUT
53
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))
54
- .gsub(%r{plantuml/plantuml[^./]+\.}, "plantuml/_.")))
55
- .to be_equivalent_to xmlpp(output)
56
- end
57
-
58
- it "processes the PlantUML macro with imagesdir" do
59
- input = <<~INPUT
60
- = Document title
61
- Author
62
- :docfile: test.adoc
63
- :nodoc:
64
- :novalid:
65
- :no-isobib:
66
- :imagesdir: spec/assets
67
- :data-uri-image: false
68
-
69
- [plantuml]
70
- ....
71
- @startuml
72
- Alice -> Bob: Authentication Request
73
- Bob --> Alice: Authentication Response
74
-
75
- Alice -> Bob: Another authentication Request
76
- Alice <-- Bob: another authentication Response
77
- @enduml
78
- ....
79
- INPUT
80
- output = <<~OUTPUT
81
- #{BLANK_HDR}
82
- <sections>
83
- <figure id="_">
84
- <image src="spec/assets/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
85
- </figure>
86
- </sections>
87
- </standard-document>
88
- OUTPUT
89
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))
90
- .gsub(%r{spec/assets/[^./]+\.}, "spec/assets/_.")))
91
- .to be_equivalent_to xmlpp(output)
92
- end
93
-
94
- context "when lutaml_diagram" do
95
- let(:input) do
96
- <<~"OUTPUT"
97
- = Document title
98
- Author
99
- :docfile: test.adoc
100
- :nodoc:
101
- :novalid:
102
- :no-isobib:
103
- :imagesdir: spec/assets
104
- :data-uri-image: false
105
-
106
- [lutaml_diagram]
107
- ....
108
- diagram MyView {
109
- fontname "Arial"
110
- title "my diagram"
111
- class Foo {}
112
- }
113
- ....
114
- OUTPUT
115
- end
116
- let(:output) do
117
- <<~"OUTPUT"
118
- #{BLANK_HDR}
119
- <sections>
120
- <figure id="_">
121
- <image src="spec/assets/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
122
- </figure>
123
- </sections>
124
- </standard-document>
125
- OUTPUT
126
- end
127
-
128
- it "processes the lutaml_diagram" do
129
- expect(
130
- xmlpp(
131
- strip_guid(Asciidoctor.convert(input, *OPTIONS))
132
- .gsub(%r{spec/assets/lutaml/[^./]+\.png},
133
- "spec/assets/_.png"),
134
- ),
135
- ).to(be_equivalent_to(xmlpp(output)))
136
- end
137
- end
138
-
139
- context "when inline macro, path supplied as the second arg" do
140
- let(:example_file) { fixtures_path("diagram_definitions.lutaml") }
141
- let(:input) do
142
- <<~TEXT
143
- = Document title
144
- Author
145
- :docfile: test.adoc
146
- :nodoc:
147
- :novalid:
148
- :no-isobib:
149
- :imagesdir: spec/assets
150
- :data-uri-image: false
151
-
152
- lutaml_diagram::#{example_file}[]
153
-
154
- TEXT
155
- end
156
- let(:output) do
157
- <<~TEXT
158
- #{BLANK_HDR}
159
- <sections>
160
- <figure id="_">
161
- <image src="spec/assets/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
162
- </figure>
163
- </sections>
164
- </standard-document>
165
- TEXT
166
- end
167
-
168
- it "correctly renders input" do
169
- expect(
170
- xmlpp(
171
- strip_guid(Asciidoctor.convert(input, *OPTIONS))
172
- .gsub(%r{spec/assets/lutaml/[^./]+\.png},
173
- "spec/assets/_.png"),
174
- ),
175
- ).to(be_equivalent_to(xmlpp(output)))
176
- end
177
- end
178
-
179
- context "when lutaml_uml_attributes_table" do
180
- let(:example_file) { fixtures_path("diagram_definitions.lutaml") }
181
- let(:input) do
182
- <<~"OUTPUT"
183
- = Document title
184
- Author
185
- :docfile: test.adoc
186
- :nodoc:
187
- :novalid:
188
- :no-isobib:
189
- :imagesdir: spec/assets
190
-
191
- [lutaml_uml_attributes_table,#{example_file},AttributeProfile]
192
- OUTPUT
193
- end
194
- let(:output) do
195
- <<~"OUTPUT"
196
- #{BLANK_HDR}
197
- <sections>
198
- <clause id='_' inline-header='false' obligation='normative'>
199
- <title>AttributeProfile</title>
200
- <table id='_'>
201
- <name>AttributeProfile attributes</name>
202
- <thead>
203
- <tr>
204
- <th valign='top' align='left'>Name</th>
205
- <th valign='top' align='left'>Definition</th>
206
- <th valign='top' align='left'>Mandatory / Optional / Conditional</th>
207
- <th valign='top' align='left'>Max Occur</th>
208
- <th valign='top' align='left'>Data Type</th>
209
- </tr>
210
- </thead>
211
- <tbody>
212
- <tr>
213
- <td valign='top' align='left'>addressClassProfile</td>
214
- <td valign='top' align='left'></td>
215
- <td valign='top' align='left'>O</td>
216
- <td valign='top' align='left'>1</td>
217
- <td valign='top' align='left'>
218
- <tt>CharacterString</tt>
219
- </td>
220
- </tr>
221
- <tr>
222
- <td valign='top' align='left'>imlicistAttributeProfile</td>
223
- <td valign='top' align='left'>this is attribute definition with multiply lines</td>
224
- <td valign='top' align='left'>O</td>
225
- <td valign='top' align='left'>1</td>
226
- <td valign='top' align='left'>
227
- <tt>CharacterString</tt>
228
- </td>
229
- </tr>
230
- </tbody>
231
- </table>
232
- </clause>
233
- </sections>
234
- </standard-document>
235
- OUTPUT
236
- end
237
-
238
- it "processes the lutaml_uml_attributes_table macro" do
239
- expect(
240
- xmlpp(
241
- strip_guid(Asciidoctor.convert(input, *OPTIONS)),
242
- ),
243
- )
244
- .to(be_equivalent_to(xmlpp(output)))
245
- end
246
- end
247
-
248
- it "processes the PlantUML macro with PlantUML disabled" do
249
- mock_plantuml_disabled
250
- input = <<~INPUT
251
- #{ASCIIDOC_BLANK_HDR}
252
-
253
- [plantuml]
254
- ....
255
- @startuml
256
- Alice -> Bob: Authentication Request
257
- Bob --> Alice: Authentication Response
258
-
259
- Alice -> Bob: Another authentication Request
260
- Alice <-- Bob: another authentication Response
261
- @enduml
262
- ....
263
- INPUT
264
- expect { Asciidoctor.convert(input, *OPTIONS) }
265
- .to output(%r{PlantUML not installed}).to_stderr
266
-
267
- mock_plantuml_disabled
268
- input = <<~INPUT
269
- #{ASCIIDOC_BLANK_HDR}
270
-
271
- [plantuml]
272
- ....
273
- @startuml
274
- Alice -> Bob: Authentication Request
275
- Bob --> Alice: Authentication Response
276
-
277
- Alice -> Bob: Another authentication Request
278
- Alice <-- Bob: another authentication Response
279
- @enduml
280
- ....
281
- INPUT
282
- output = <<~OUTPUT
283
- #{BLANK_HDR}
284
- <sections>
285
- <sourcecode id="_" lang="plantuml">@startuml
286
- Alice -&gt; Bob: Authentication Request
287
- Bob --&gt; Alice: Authentication Response
288
-
289
- Alice -&gt; Bob: Another authentication Request
290
- Alice &lt;-- Bob: another authentication Response
291
- @enduml</sourcecode>
292
- </sections>
293
- </standard-document>
294
- OUTPUT
295
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
296
- .to be_equivalent_to xmlpp(output)
297
- end
298
-
299
- it "processes the PlantUML macro with localdir unwritable" do
300
- mock_localdir_unwritable
301
- input = <<~INPUT
302
- #{ASCIIDOC_BLANK_HDR}
303
-
304
- [plantuml]
305
- ....
306
- @startuml
307
- Alice -> Bob: Authentication Request
308
- Bob --> Alice: Authentication Response
309
-
310
- Alice -> Bob: Another authentication Request
311
- Alice <-- Bob: another authentication Response
312
- @enduml
313
- ....
314
- INPUT
315
- expect { Asciidoctor.convert(input, *OPTIONS) }
316
- .to output(%r{not writable for PlantUML}).to_stderr
317
-
318
- mock_localdir_unwritable
319
- input = <<~INPUT
320
- #{ASCIIDOC_BLANK_HDR}
321
-
322
- [plantuml]
323
- ....
324
- @startuml
325
- Alice -> Bob: Authentication Request
326
- Bob --> Alice: Authentication Response
327
-
328
- Alice -> Bob: Another authentication Request
329
- Alice <-- Bob: another authentication Response
330
- @enduml
331
- ....
332
- INPUT
333
- output = <<~OUTPUT
334
- #{BLANK_HDR}
335
- <sections>
336
- <sourcecode id="_" lang="plantuml">@startuml
337
- Alice -&gt; Bob: Authentication Request
338
- Bob --&gt; Alice: Authentication Response
339
-
340
- Alice -&gt; Bob: Another authentication Request
341
- Alice &lt;-- Bob: another authentication Response
342
- @enduml</sourcecode>
343
- </sections>
344
- </standard-document>
345
- OUTPUT
346
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
347
- .to be_equivalent_to xmlpp(output)
348
- end
349
-
350
- it "processes the PlantUML macro with mismatched delimiters" do
351
- input = <<~INPUT
352
- #{ASCIIDOC_BLANK_HDR}
353
-
354
- [plantuml]
355
- ....
356
- @startuml
357
- Alice -> Bob: Authentication Request
358
- Bob --> Alice: Authentication Response
359
-
360
- Alice -> Bob: Another authentication Request
361
- Alice <-- Bob: another authentication Response
362
- ....
363
- INPUT
364
- expect { Asciidoctor.convert(input, *OPTIONS) }
365
- .to output(%r{@startuml without matching @enduml in PlantUML!}).to_stderr
366
- output = <<~OUTPUT
367
- #{BLANK_HDR}
368
- <sections>
369
- <sourcecode id="_" lang="plantuml">@startuml
370
- Alice -&gt; Bob: Authentication Request
371
- Bob --&gt; Alice: Authentication Response
372
-
373
- Alice -&gt; Bob: Another authentication Request
374
- Alice &lt;-- Bob: another authentication Response</sourcecode>
375
- </sections>
376
- </standard-document>
377
- OUTPUT
378
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
379
- .to be_equivalent_to xmlpp(output)
380
- end
381
-
382
- private
383
-
384
- def mock_plantuml_disabled
385
- expect(Metanorma::Standoc::PlantUMLBlockMacroBackend)
386
- .to receive(:plantuml_installed?) do
387
- raise "PlantUML not installed"
388
- end
389
- end
390
-
391
- def mock_localdir_unwritable
392
- expect(Metanorma::Standoc::Utils).to receive(:localdir) do
393
- "/"
394
- end.exactly(2).times
395
- end
396
-
397
- def mock_localdir_unwritable
398
- expect(File).to receive(:writable?) do
399
- false
400
- end
401
- end
402
- end