metanorma-standoc 1.9.0 → 1.10.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +3 -13
- data/.hound.yml +3 -1
- data/.rubocop.yml +4 -8
- data/lib/asciidoctor/standoc/base.rb +31 -35
- data/lib/asciidoctor/standoc/biblio.rng +1 -0
- data/lib/asciidoctor/standoc/blocks.rb +25 -9
- data/lib/asciidoctor/standoc/blocks_notes.rb +41 -24
- data/lib/asciidoctor/standoc/cleanup.rb +59 -84
- data/lib/asciidoctor/standoc/cleanup_block.rb +63 -85
- data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +28 -15
- data/lib/asciidoctor/standoc/cleanup_footnotes.rb +1 -0
- data/lib/asciidoctor/standoc/cleanup_image.rb +71 -0
- data/lib/asciidoctor/standoc/cleanup_inline.rb +117 -77
- data/lib/asciidoctor/standoc/cleanup_maths.rb +36 -27
- data/lib/asciidoctor/standoc/cleanup_ref.rb +31 -15
- data/lib/asciidoctor/standoc/cleanup_ref_dl.rb +1 -1
- data/lib/asciidoctor/standoc/cleanup_reqt.rb +47 -0
- data/lib/asciidoctor/standoc/cleanup_section.rb +77 -135
- data/lib/asciidoctor/standoc/cleanup_section_names.rb +75 -0
- data/lib/asciidoctor/standoc/cleanup_terms.rb +19 -18
- data/lib/asciidoctor/standoc/converter.rb +7 -2
- data/lib/asciidoctor/standoc/datamodel/plantuml_renderer.rb +67 -66
- data/lib/asciidoctor/standoc/front.rb +35 -18
- data/lib/asciidoctor/standoc/front_contributor.rb +70 -45
- data/lib/asciidoctor/standoc/inline.rb +45 -34
- data/lib/asciidoctor/standoc/isodoc.rng +209 -4
- data/lib/asciidoctor/standoc/lists.rb +4 -2
- data/lib/asciidoctor/standoc/macros.rb +11 -11
- data/lib/asciidoctor/standoc/macros_form.rb +63 -0
- data/lib/asciidoctor/standoc/macros_plantuml.rb +19 -21
- data/lib/asciidoctor/standoc/macros_terms.rb +33 -23
- data/lib/asciidoctor/standoc/ref.rb +87 -112
- data/lib/asciidoctor/standoc/ref_date_id.rb +62 -0
- data/lib/asciidoctor/standoc/ref_sect.rb +20 -17
- data/lib/asciidoctor/standoc/section.rb +3 -1
- data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +40 -27
- data/lib/asciidoctor/standoc/terms.rb +25 -18
- data/lib/asciidoctor/standoc/utils.rb +35 -9
- data/lib/asciidoctor/standoc/validate.rb +48 -33
- data/lib/metanorma-standoc.rb +0 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +4 -4
- data/spec/asciidoctor/base_spec.rb +701 -508
- data/spec/asciidoctor/blocks_spec.rb +831 -738
- data/spec/asciidoctor/cleanup_sections_spec.rb +51 -14
- data/spec/asciidoctor/cleanup_spec.rb +889 -682
- data/spec/asciidoctor/inline_spec.rb +62 -14
- data/spec/asciidoctor/isobib_cache_spec.rb +404 -358
- data/spec/asciidoctor/lists_spec.rb +149 -137
- data/spec/asciidoctor/macros_plantuml_spec.rb +8 -8
- data/spec/asciidoctor/macros_spec.rb +923 -503
- data/spec/asciidoctor/macros_yaml2text_spec.rb +1 -1
- data/spec/asciidoctor/refs_dl_spec.rb +4 -4
- data/spec/asciidoctor/refs_spec.rb +1528 -1533
- data/spec/asciidoctor/section_spec.rb +405 -299
- data/spec/asciidoctor/table_spec.rb +6 -6
- data/spec/asciidoctor/validate_spec.rb +342 -304
- data/spec/spec_helper.rb +13 -9
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +54 -54
- data/spec/vcr_cassettes/isobib_get_123.yml +13 -13
- data/spec/vcr_cassettes/isobib_get_123_1.yml +25 -25
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +37 -37
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
- data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
- metadata +16 -15
- data/lib/liquid/custom_blocks/key_iterator.rb +0 -21
- data/lib/liquid/custom_blocks/with_json_nested_context.rb +0 -18
- data/lib/liquid/custom_blocks/with_yaml_nested_context.rb +0 -19
- data/lib/liquid/custom_filters/values.rb +0 -7
@@ -2,13 +2,14 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe Asciidoctor::Standoc do
|
4
4
|
it "handles spacing around markup" do
|
5
|
-
|
5
|
+
input = <<~INPUT
|
6
6
|
#{ASCIIDOC_BLANK_HDR}
|
7
7
|
This is
|
8
8
|
a paragraph with <<x>>
|
9
9
|
markup _for_
|
10
10
|
text, including **__nest__**ed markup.
|
11
11
|
INPUT
|
12
|
+
output = <<~OUTPUT
|
12
13
|
<?xml version="1.0" encoding="UTF-8"?>
|
13
14
|
<standard-document xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
14
15
|
<bibdata type="standard">
|
@@ -33,10 +34,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
33
34
|
</sections>
|
34
35
|
</standard-document>
|
35
36
|
OUTPUT
|
37
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
38
|
+
.to be_equivalent_to(output)
|
36
39
|
end
|
37
40
|
|
38
41
|
it "processes inline_quoted formatting" do
|
39
|
-
|
42
|
+
input = <<~INPUT
|
40
43
|
#{DUMBQUOTE_BLANK_HDR}
|
41
44
|
_Physical noise
|
42
45
|
sources_
|
@@ -57,6 +60,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
57
60
|
[smallcap]#smallcap#
|
58
61
|
[keyword]#keyword#
|
59
62
|
INPUT
|
63
|
+
output = <<~OUTPUT
|
60
64
|
#{BLANK_HDR}
|
61
65
|
<sections>
|
62
66
|
<em>Physical noise sources</em>
|
@@ -79,14 +83,17 @@ RSpec.describe Asciidoctor::Standoc do
|
|
79
83
|
</sections>
|
80
84
|
</standard-document>
|
81
85
|
OUTPUT
|
86
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
87
|
+
.to be_equivalent_to(output)
|
82
88
|
end
|
83
89
|
|
84
90
|
it "process mtext spaces" do
|
85
|
-
|
91
|
+
input = <<~INPUT
|
86
92
|
#{DUMBQUOTE_BLANK_HDR}
|
87
93
|
|
88
94
|
stem:[n < 1 " for all text "]
|
89
95
|
INPUT
|
96
|
+
output = <<~OUTPUT
|
90
97
|
#{BLANK_HDR}
|
91
98
|
<sections>
|
92
99
|
<p id='_'>
|
@@ -102,16 +109,19 @@ RSpec.describe Asciidoctor::Standoc do
|
|
102
109
|
</sections>
|
103
110
|
</standard-document>
|
104
111
|
OUTPUT
|
112
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
113
|
+
.to be_equivalent_to(output)
|
105
114
|
end
|
106
115
|
|
107
116
|
it "properly handles inline substitution" do
|
108
|
-
|
117
|
+
input = <<~INPUT
|
109
118
|
#{DUMBQUOTE_BLANK_HDR}
|
110
119
|
|
111
120
|
stem:[n < 1] +
|
112
121
|
latexmath:[n < 1]
|
113
122
|
stem:["‌"^199 "Hg"^+]
|
114
123
|
INPUT
|
124
|
+
output = <<~OUTPUT
|
115
125
|
#{BLANK_HDR}
|
116
126
|
<sections>
|
117
127
|
<p id="_">
|
@@ -141,16 +151,19 @@ RSpec.describe Asciidoctor::Standoc do
|
|
141
151
|
</sections>
|
142
152
|
</standard-document>
|
143
153
|
OUTPUT
|
154
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
155
|
+
.to be_equivalent_to(output)
|
144
156
|
end
|
145
157
|
|
146
158
|
it "normalises inline stem, straight quotes" do
|
147
|
-
|
159
|
+
input = <<~INPUT
|
148
160
|
#{DUMBQUOTE_BLANK_HDR}
|
149
161
|
|
150
162
|
stem:[n < 1]
|
151
163
|
latexmath:[n < 1]
|
152
164
|
stem:["‌"^199 "Hg"^+]
|
153
165
|
INPUT
|
166
|
+
output = <<~OUTPUT
|
154
167
|
#{BLANK_HDR}
|
155
168
|
<sections>
|
156
169
|
<p id="_">
|
@@ -180,16 +193,19 @@ RSpec.describe Asciidoctor::Standoc do
|
|
180
193
|
</sections>
|
181
194
|
</standard-document>
|
182
195
|
OUTPUT
|
196
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
197
|
+
.to be_equivalent_to(output)
|
183
198
|
end
|
184
199
|
|
185
200
|
it "normalises inline stem, smart quotes" do
|
186
|
-
|
201
|
+
input = <<~INPUT
|
187
202
|
#{ASCIIDOC_BLANK_HDR}
|
188
203
|
|
189
204
|
stem:[n < 1]
|
190
205
|
latexmath:[n < 1]
|
191
206
|
stem:["‌"^199 "Hg"^+]
|
192
207
|
INPUT
|
208
|
+
output = <<~OUTPUT
|
193
209
|
#{BLANK_HDR}
|
194
210
|
<sections>
|
195
211
|
<p id="_">
|
@@ -219,23 +235,28 @@ RSpec.describe Asciidoctor::Standoc do
|
|
219
235
|
</sections>
|
220
236
|
</standard-document>
|
221
237
|
OUTPUT
|
238
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
239
|
+
.to be_equivalent_to(output)
|
222
240
|
end
|
223
241
|
|
224
242
|
it "generates desired smart quotes for 'dd'" do
|
225
|
-
|
243
|
+
input = <<~INPUT
|
226
244
|
#{ASCIIDOC_BLANK_HDR}
|
227
245
|
'99'.
|
228
246
|
|
229
247
|
INPUT
|
248
|
+
output = <<~OUTPUT
|
230
249
|
#{BLANK_HDR}
|
231
250
|
<sections><p id="_">‘99’.</p>
|
232
251
|
</sections>
|
233
252
|
</standard-document>
|
234
253
|
OUTPUT
|
254
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
255
|
+
.to be_equivalent_to(output)
|
235
256
|
end
|
236
257
|
|
237
258
|
it "processes breaks" do
|
238
|
-
|
259
|
+
input = <<~INPUT
|
239
260
|
#{ASCIIDOC_BLANK_HDR}
|
240
261
|
Line break +
|
241
262
|
line break
|
@@ -250,6 +271,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
250
271
|
[%portrait]
|
251
272
|
<<<
|
252
273
|
INPUT
|
274
|
+
output = <<~OUTPUT
|
253
275
|
#{BLANK_HDR}
|
254
276
|
<sections><p id="_">Line break<br/>
|
255
277
|
line break</p>
|
@@ -260,17 +282,23 @@ RSpec.describe Asciidoctor::Standoc do
|
|
260
282
|
</sections>
|
261
283
|
</standard-document>
|
262
284
|
OUTPUT
|
285
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
286
|
+
.to be_equivalent_to(output)
|
263
287
|
end
|
264
288
|
|
265
289
|
it "processes links" do
|
266
|
-
|
290
|
+
input = <<~INPUT
|
267
291
|
#{ASCIIDOC_BLANK_HDR}
|
268
292
|
mailto:fred@example.com
|
269
293
|
http://example.com[]
|
270
294
|
http://example.com[Link]
|
271
295
|
http://example.com[Link,title="tip"]
|
272
296
|
link:++https://asciidoctor.org/now_this__link_works.html++[]
|
297
|
+
http://example.com[Link,updatetype=true]
|
298
|
+
link:../example[updatetype=true]
|
299
|
+
link:../example[Link,updatetype=true]
|
273
300
|
INPUT
|
301
|
+
output = <<~OUTPUT
|
274
302
|
#{BLANK_HDR}
|
275
303
|
<sections>
|
276
304
|
<p id="_">mailto:fred@example.com
|
@@ -278,27 +306,35 @@ RSpec.describe Asciidoctor::Standoc do
|
|
278
306
|
<link target="http://example.com">Link</link>
|
279
307
|
<link target="http://example.com" alt="tip">Link</link>
|
280
308
|
<link target='https://asciidoctor.org/now_this__link_works.html'/>
|
309
|
+
<link target="http://example.com" updatetype="true">Link</link>
|
310
|
+
<link target="../example" updatetype="true"/>
|
311
|
+
<link target="../example" updatetype="true">Link</link></p>
|
281
312
|
</p>
|
282
313
|
</sections>
|
283
314
|
</standard-document>
|
284
315
|
OUTPUT
|
316
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
317
|
+
.to be_equivalent_to(output)
|
285
318
|
end
|
286
319
|
|
287
320
|
it "processes bookmarks" do
|
288
|
-
|
321
|
+
input = <<~INPUT
|
289
322
|
#{ASCIIDOC_BLANK_HDR}
|
290
323
|
Text [[bookmark]] Text
|
291
324
|
INPUT
|
325
|
+
output = <<~OUTPUT
|
292
326
|
#{BLANK_HDR}
|
293
327
|
<sections>
|
294
328
|
<p id="_">Text <bookmark id="bookmark"/> Text</p>
|
295
329
|
</sections>
|
296
330
|
</standard-document>
|
297
331
|
OUTPUT
|
332
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
333
|
+
.to be_equivalent_to(output)
|
298
334
|
end
|
299
335
|
|
300
336
|
it "processes crossreferences" do
|
301
|
-
|
337
|
+
input = <<~INPUT
|
302
338
|
#{ASCIIDOC_BLANK_HDR}
|
303
339
|
[[reference]]
|
304
340
|
== Section
|
@@ -318,6 +354,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
318
354
|
Lowercase Footnoted Reference to <<reference,droploc%capital%fn>>
|
319
355
|
Lowercase Footnoted Reference to <<reference,droploc%capital%text>>
|
320
356
|
INPUT
|
357
|
+
output = <<~OUTPUT
|
321
358
|
#{BLANK_HDR}
|
322
359
|
<sections>
|
323
360
|
<clause id="reference" inline-header="false" obligation="normative">
|
@@ -348,10 +385,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
348
385
|
</sections>
|
349
386
|
</standard-document>
|
350
387
|
OUTPUT
|
388
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
389
|
+
.to be_equivalent_to(output)
|
351
390
|
end
|
352
391
|
|
353
392
|
it "processes bibliographic anchors" do
|
354
|
-
|
393
|
+
input = <<~INPUT
|
355
394
|
#{ASCIIDOC_BLANK_HDR}
|
356
395
|
[bibliography]
|
357
396
|
== Normative References
|
@@ -360,6 +399,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
360
399
|
* [[[ISO713]]] Reference
|
361
400
|
|
362
401
|
INPUT
|
402
|
+
output = <<~OUTPUT
|
363
403
|
#{BLANK_HDR}
|
364
404
|
<sections>
|
365
405
|
|
@@ -379,10 +419,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
379
419
|
</bibliography>
|
380
420
|
</standard-document>
|
381
421
|
OUTPUT
|
422
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
423
|
+
.to be_equivalent_to(output)
|
382
424
|
end
|
383
425
|
|
384
426
|
it "processes footnotes" do
|
385
|
-
|
427
|
+
input = <<~INPUT
|
386
428
|
#{ASCIIDOC_BLANK_HDR}
|
387
429
|
Hello!footnote:[Footnote text]
|
388
430
|
|
@@ -392,6 +434,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
392
434
|
|
393
435
|
Repetition.footnote:abc[]
|
394
436
|
INPUT
|
437
|
+
output = <<~OUTPUT
|
395
438
|
#{BLANK_HDR}
|
396
439
|
<preface><foreword id="_" obligation="informative">
|
397
440
|
<title>Foreword</title>
|
@@ -418,18 +461,23 @@ RSpec.describe Asciidoctor::Standoc do
|
|
418
461
|
</clause></sections>
|
419
462
|
</standard-document>
|
420
463
|
OUTPUT
|
464
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
465
|
+
.to be_equivalent_to(output)
|
421
466
|
end
|
422
467
|
|
423
468
|
it "processes index terms" do
|
424
|
-
|
469
|
+
input = <<~INPUT
|
425
470
|
#{ASCIIDOC_BLANK_HDR}
|
426
471
|
((See)) Index ((_term_)) and(((A~B~, stem:[alpha], Ⲁ))).
|
427
472
|
INPUT
|
473
|
+
output = <<~OUTPUT
|
428
474
|
#{BLANK_HDR}
|
429
475
|
<sections>
|
430
476
|
<p id="_">See<index><primary>See</primary></index> Index <em>term</em><index><primary><em>term</em></primary></index> and<index><primary>A<sub>B</sub></primary><secondary><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>α</mi></math></stem></secondary><tertiary>Ⲁ</tertiary></index>.</p>
|
431
477
|
</sections>
|
432
478
|
</standard-document>
|
433
479
|
OUTPUT
|
480
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
481
|
+
.to be_equivalent_to(output)
|
434
482
|
end
|
435
483
|
end
|
@@ -2,47 +2,45 @@ require "spec_helper"
|
|
2
2
|
require "relaton_iso"
|
3
3
|
require "fileutils"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
<
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
<
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
ISO_124_DATED = <<~EOS
|
5
|
+
IETF_123_SHORT = <<~XML.freeze
|
6
|
+
<bibitem type="standard" id="IETF123">
|
7
|
+
<title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title>
|
8
|
+
<docidentifier type="IETF">RFC 123</docidentifier>
|
9
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
10
|
+
<status><stage>Published</stage></status>
|
11
|
+
</bibitem>
|
12
|
+
XML
|
13
|
+
|
14
|
+
ISO_123_SHORT = <<~XML.freeze
|
15
|
+
<bibitem type="standard" id="ISO123">
|
16
|
+
<title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title>
|
17
|
+
<docidentifier type="ISO">ISO 123</docidentifier>
|
18
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
19
|
+
<status><stage>Published</stage></status>
|
20
|
+
</bibitem>
|
21
|
+
XML
|
22
|
+
|
23
|
+
ISO_124_SHORT = <<~XML.freeze
|
24
|
+
<bibitem type="standard" id="ISO124">
|
25
|
+
<fetched>#{Date.today}</fetched>
|
26
|
+
<title format="text/plain" language="en" script="Latn">Latex, rubber -- Determination of total solids content</title>
|
27
|
+
<docidentifier type="ISO">ISO 124</docidentifier>
|
28
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
29
|
+
<status><stage>Published</stage></status>
|
30
|
+
</bibitem>
|
31
|
+
XML
|
32
|
+
|
33
|
+
ISO_124_SHORT_ALT = <<~XML.freeze
|
34
|
+
<bibitem type="standard" id="ISO124">
|
35
|
+
<fetched>#{Date.today}</fetched>
|
36
|
+
<title format="text/plain" language="en" script="Latn">Latex, rubber -- Replacement</title>
|
37
|
+
<docidentifier type="ISO">ISO 124</docidentifier>
|
38
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
39
|
+
<status><stage>60</stage><substage>60</substage></status>
|
40
|
+
</bibitem>
|
41
|
+
XML
|
42
|
+
|
43
|
+
ISO_124_DATED = <<~XML.freeze
|
46
44
|
<bibdata type="standard">
|
47
45
|
<fetched>#{Date.today}</fetched>
|
48
46
|
<title type="title-intro" format="text/plain" language="en" script="Latn">Latex, rubber</title>
|
@@ -101,181 +99,184 @@ EOS
|
|
101
99
|
</structuredidentifier>
|
102
100
|
</ext>
|
103
101
|
</bibdata>
|
104
|
-
|
102
|
+
XML
|
105
103
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
104
|
+
ISO_123_UNDATED = <<~XML.freeze
|
105
|
+
<bibdata type="standard">
|
106
|
+
<fetched>#{Date.today}</fetched>
|
107
|
+
<title type="title-intro" format="text/plain" language="en" script="Latn">Rubber latex</title>
|
108
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">Sampling</title>
|
109
|
+
<title type="main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
|
110
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
111
|
+
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
112
|
+
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
113
|
+
<docidentifier type="ISO">ISO 123</docidentifier>
|
114
|
+
<docnumber>123</docnumber>
|
115
|
+
<contributor>
|
116
|
+
<role type="publisher"/>
|
117
|
+
<organization>
|
118
|
+
<name>International Organization for Standardization</name>
|
119
|
+
<abbreviation>ISO</abbreviation>
|
120
|
+
<uri>www.iso.org</uri>
|
121
|
+
</organization>
|
122
|
+
</contributor>
|
123
|
+
<edition>3</edition>
|
124
|
+
<language>en</language>
|
125
|
+
<script>Latn</script>
|
126
|
+
<status>
|
127
|
+
<stage>90</stage>
|
128
|
+
<substage>93</substage>
|
129
|
+
</status>
|
130
|
+
<copyright>
|
131
|
+
<from>2001</from>
|
132
|
+
<owner>
|
133
|
+
<organization>
|
134
|
+
<name>ISO</name>
|
135
|
+
</organization>
|
136
|
+
</owner>
|
137
|
+
</copyright>
|
138
|
+
<relation type="obsoletes">
|
139
|
+
<bibitem type="standard">
|
140
|
+
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
141
|
+
</bibitem>
|
142
|
+
</relation>
|
143
|
+
<relation type="instance">
|
144
|
+
<bibitem type="standard">
|
145
|
+
<fetched>#{Date.today}</fetched>
|
146
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
|
147
|
+
<title type="main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
|
148
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
149
|
+
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
150
|
+
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
151
|
+
<docidentifier type="ISO">ISO 123:2001</docidentifier>
|
152
|
+
<docnumber>123</docnumber>
|
153
|
+
<date type="published">
|
154
|
+
<on>2001</on>
|
155
|
+
</date>
|
156
|
+
<contributor>
|
157
|
+
<role type="publisher"/>
|
158
|
+
<organization>
|
159
|
+
<name>International Organization for Standardization</name>
|
160
|
+
<abbreviation>ISO</abbreviation>
|
161
|
+
<uri>www.iso.org</uri>
|
162
|
+
</organization>
|
163
|
+
</contributor>
|
164
|
+
<edition>3</edition>
|
165
|
+
<language>en</language>
|
166
|
+
<script>Latn</script>
|
167
|
+
<status>
|
168
|
+
<stage>90</stage>
|
169
|
+
<substage>93</substage>
|
170
|
+
</status>
|
171
|
+
<copyright>
|
172
|
+
<from>2001</from>
|
173
|
+
<owner>
|
174
|
+
<organization>
|
175
|
+
<name>ISO</name>
|
176
|
+
</organization>
|
177
|
+
</owner>
|
178
|
+
</copyright>
|
179
|
+
<relation type="obsoletes">
|
180
|
+
<bibitem type="standard">
|
181
|
+
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
182
|
+
</bibitem>
|
183
|
+
</relation>
|
184
|
+
</bibitem>
|
185
|
+
</relation>
|
186
|
+
<ext>
|
187
|
+
<doctype>international-standard</doctype>
|
188
|
+
<editorialgroup>
|
189
|
+
<technical-committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical-committee>
|
190
|
+
</editorialgroup>
|
191
|
+
<ics>
|
192
|
+
<code>83.040.10</code>
|
193
|
+
<text>Latex and raw rubber</text>
|
194
|
+
</ics>
|
195
|
+
<structuredidentifier type="ISO">
|
196
|
+
<project-number>ISO 123</project-number>
|
197
|
+
</structuredidentifier>
|
198
|
+
</ext>
|
199
|
+
</bibdata>
|
200
|
+
XML
|
201
|
+
|
202
|
+
ISO_123_DATED = <<~XML.freeze
|
203
|
+
<bibdata type="standard">
|
204
|
+
<fetched>#{Date.today}</fetched>
|
205
|
+
<title type="title-intro" format="text/plain" language="en" script="Latn">Rubber latex</title>
|
206
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">Sampling</title>
|
207
|
+
<title type='main' format='text/plain' language='en' script='Latn'>Rubber latex - Sampling</title>
|
208
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
209
|
+
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
210
|
+
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
211
|
+
<docidentifier type="ISO">ISO 123:2001</docidentifier>
|
212
|
+
<docidentifier type='URN'>urn:iso:std:iso:123:stage-90.93:ed-3:en</docidentifier>
|
213
|
+
<docnumber>123</docnumber>
|
214
|
+
<date type="published">
|
215
|
+
<on>2001-05</on>
|
216
|
+
</date>
|
217
|
+
<contributor>
|
218
|
+
<role type="publisher"/>
|
135
219
|
<organization>
|
136
|
-
<name>
|
220
|
+
<name>International Organization for Standardization</name>
|
221
|
+
<abbreviation>ISO</abbreviation>
|
222
|
+
<uri>www.iso.org</uri>
|
137
223
|
</organization>
|
138
|
-
</
|
139
|
-
|
140
|
-
|
141
|
-
<
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
<
|
151
|
-
<
|
152
|
-
|
153
|
-
|
154
|
-
<
|
155
|
-
<
|
156
|
-
<on>2001</on>
|
157
|
-
</date>
|
158
|
-
<contributor>
|
159
|
-
<role type="publisher"/>
|
224
|
+
</contributor>
|
225
|
+
<edition>3</edition>
|
226
|
+
<language>en</language>
|
227
|
+
<script>Latn</script>
|
228
|
+
<abstract format='text/plain' language='en' script='Latn'>
|
229
|
+
This International Standard specifies procedures for sampling natural rubber
|
230
|
+
latex concentrate and for sampling syntheticrubber latices and artificial
|
231
|
+
latices. It is also suitable for sampling rubber latex contained in drums,
|
232
|
+
tank cars ortanks. The procedures may also be used for sampling plastics
|
233
|
+
dispersions.
|
234
|
+
</abstract>
|
235
|
+
<status>
|
236
|
+
<stage>90</stage>
|
237
|
+
<substage>93</substage>
|
238
|
+
</status>
|
239
|
+
<copyright>
|
240
|
+
<from>2001</from>
|
241
|
+
<owner>
|
160
242
|
<organization>
|
161
|
-
<name>
|
162
|
-
<abbreviation>ISO</abbreviation>
|
163
|
-
<uri>www.iso.org</uri>
|
243
|
+
<name>ISO</name>
|
164
244
|
</organization>
|
165
|
-
</
|
166
|
-
|
167
|
-
|
168
|
-
<
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
</
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
<ext>
|
189
|
-
<doctype>international-standard</doctype>
|
190
|
-
<editorialgroup>
|
191
|
-
<technical-committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical-committee>
|
192
|
-
</editorialgroup>
|
193
|
-
<ics>
|
194
|
-
<code>83.040.10</code>
|
195
|
-
<text>Latex and raw rubber</text>
|
196
|
-
</ics>
|
197
|
-
<structuredidentifier type="ISO">
|
198
|
-
<project-number>ISO 123</project-number>
|
199
|
-
</structuredidentifier>
|
200
|
-
</ext>
|
201
|
-
</bibdata>
|
202
|
-
EOS
|
203
|
-
|
204
|
-
ISO_123_DATED = <<~EOS
|
205
|
-
<bibdata type="standard">
|
206
|
-
<fetched>#{Date.today}</fetched>
|
207
|
-
<title type="title-intro" format="text/plain" language="en" script="Latn">Rubber latex</title>
|
208
|
-
<title type="title-main" format="text/plain" language="en" script="Latn">Sampling</title>
|
209
|
-
<title type='main' format='text/plain' language='en' script='Latn'>Rubber latex - Sampling</title>
|
210
|
-
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
211
|
-
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
212
|
-
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
213
|
-
<docidentifier type="ISO">ISO 123:2001</docidentifier>
|
214
|
-
<docidentifier type='URN'>urn:iso:std:iso:123:stage-90.20:ed-3:en</docidentifier>
|
215
|
-
<docnumber>123</docnumber>
|
216
|
-
<date type="published">
|
217
|
-
<on>2001-05</on>
|
218
|
-
</date>
|
219
|
-
<contributor>
|
220
|
-
<role type="publisher"/>
|
221
|
-
<organization>
|
222
|
-
<name>International Organization for Standardization</name>
|
223
|
-
<abbreviation>ISO</abbreviation>
|
224
|
-
<uri>www.iso.org</uri>
|
225
|
-
</organization>
|
226
|
-
</contributor>
|
227
|
-
<edition>3</edition>
|
228
|
-
<language>en</language>
|
229
|
-
<script>Latn</script>
|
230
|
-
<abstract format='text/plain' language='en' script='Latn'>
|
231
|
-
This International Standard specifies procedures for sampling natural rubber
|
232
|
-
latex concentrate and for sampling syntheticrubber latices and artificial
|
233
|
-
latices. It is also suitable for sampling rubber latex contained in drums,
|
234
|
-
tank cars ortanks. The procedures may also be used for sampling plastics
|
235
|
-
dispersions.
|
236
|
-
</abstract>
|
237
|
-
<status>
|
238
|
-
<stage>90</stage>
|
239
|
-
<substage>20</substage>
|
240
|
-
</status>
|
241
|
-
<copyright>
|
242
|
-
<from>2001</from>
|
243
|
-
<owner>
|
244
|
-
<organization>
|
245
|
-
<name>ISO</name>
|
246
|
-
</organization>
|
247
|
-
</owner>
|
248
|
-
</copyright>
|
249
|
-
<relation type="obsoletes">
|
250
|
-
<bibitem type="standard">
|
251
|
-
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
252
|
-
</bibitem>
|
253
|
-
</relation>
|
254
|
-
<place>Geneva</place>
|
255
|
-
<ext>
|
256
|
-
<doctype>international-standard</doctype>
|
257
|
-
<editorialgroup>
|
258
|
-
<technical-committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical-committee>
|
259
|
-
</editorialgroup>
|
260
|
-
<ics>
|
261
|
-
<code>83.040.10</code>
|
262
|
-
<text>Latex and raw rubber</text>
|
263
|
-
</ics>
|
264
|
-
<structuredidentifier type="ISO">
|
265
|
-
<project-number>ISO 123</project-number>
|
266
|
-
</structuredidentifier>
|
267
|
-
</ext>
|
268
|
-
</bibdata>
|
269
|
-
EOS
|
245
|
+
</owner>
|
246
|
+
</copyright>
|
247
|
+
<relation type="obsoletes">
|
248
|
+
<bibitem type="standard">
|
249
|
+
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
250
|
+
</bibitem>
|
251
|
+
</relation>
|
252
|
+
<place>Geneva</place>
|
253
|
+
<ext>
|
254
|
+
<doctype>international-standard</doctype>
|
255
|
+
<editorialgroup>
|
256
|
+
<technical-committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical-committee>
|
257
|
+
</editorialgroup>
|
258
|
+
<ics>
|
259
|
+
<code>83.040.10</code>
|
260
|
+
<text>Latex and raw rubber</text>
|
261
|
+
</ics>
|
262
|
+
<structuredidentifier type="ISO">
|
263
|
+
<project-number>ISO 123</project-number>
|
264
|
+
</structuredidentifier>
|
265
|
+
</ext>
|
266
|
+
</bibdata>
|
267
|
+
XML
|
270
268
|
|
269
|
+
RSpec.describe Asciidoctor::Standoc do
|
271
270
|
it "does not activate biblio caches if isobib disabled" do
|
272
271
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
273
|
-
FileUtils.mv
|
272
|
+
FileUtils.mv(File.expand_path("~/.relaton/cache"),
|
273
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true)
|
274
274
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
275
|
-
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
275
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
276
|
+
File.expand_path("~/.iev.pstore1"), force: true
|
276
277
|
FileUtils.rm_rf "relaton/cache"
|
277
278
|
FileUtils.rm_rf "test.iev.pstore"
|
278
|
-
Asciidoctor.convert(<<~"INPUT",
|
279
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
279
280
|
#{ASCIIDOC_BLANK_HDR}
|
280
281
|
[bibliography]
|
281
282
|
== Normative References
|
@@ -288,20 +289,24 @@ EOS
|
|
288
289
|
expect(File.exist?("test.iev.pstore")).to be false
|
289
290
|
|
290
291
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
291
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
292
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
293
|
+
File.expand_path("~/.relaton/cache"), force: true
|
292
294
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
293
|
-
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
295
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
296
|
+
File.expand_path("~/.iev.pstore"), force: true
|
294
297
|
end
|
295
298
|
|
296
299
|
it "does not activate biblio caches if isobib caching disabled" do
|
297
300
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
298
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
301
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
302
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
299
303
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
300
|
-
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
304
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
305
|
+
File.expand_path("~/.iev.pstore1"), force: true
|
301
306
|
FileUtils.rm_rf "relaton/cache"
|
302
307
|
FileUtils.rm_rf "test.iev.pstore"
|
303
308
|
mock_isobib_get_123
|
304
|
-
Asciidoctor.convert(<<~"INPUT",
|
309
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
305
310
|
#{ISOBIB_BLANK_HDR}
|
306
311
|
[bibliography]
|
307
312
|
== Normative References
|
@@ -315,8 +320,10 @@ EOS
|
|
315
320
|
|
316
321
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
317
322
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
318
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
319
|
-
|
323
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
324
|
+
File.expand_path("~/.relaton/cache"), force: true
|
325
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
326
|
+
File.expand_path("~/.iev.pstore"), force: true
|
320
327
|
end
|
321
328
|
|
322
329
|
it "flushes biblio caches" do
|
@@ -325,7 +332,8 @@ EOS
|
|
325
332
|
iev_file = File.expand_path("~/.iev/cache")
|
326
333
|
iev_file1 = File.expand_path("~/.iev.pstore1")
|
327
334
|
FileUtils.rm_rf relaton_bib_file1 if File.exist? relaton_bib_file1
|
328
|
-
|
335
|
+
File.exist? relaton_bib_file and
|
336
|
+
FileUtils.mv relaton_bib_file, relaton_bib_file1
|
329
337
|
FileUtils.rm_rf iev_file1 if File.exist? iev_file1
|
330
338
|
FileUtils.mv iev_file, iev_file1 if File.exist? iev_file
|
331
339
|
|
@@ -334,7 +342,7 @@ EOS
|
|
334
342
|
|
335
343
|
# mock_isobib_get_123
|
336
344
|
VCR.use_cassette "isobib_get_123_2001" do
|
337
|
-
Asciidoctor.convert(<<~"INPUT",
|
345
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
338
346
|
#{FLUSH_CACHE_ISOBIB_BLANK_HDR}
|
339
347
|
[bibliography]
|
340
348
|
== Normative References
|
@@ -345,36 +353,38 @@ EOS
|
|
345
353
|
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
346
354
|
expect(File.exist?("#{Dir.home}/.iev/cache")).to be false
|
347
355
|
|
348
|
-
mock_open_uri(
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
356
|
+
mock_open_uri("103-01-02")
|
357
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
358
|
+
[bibliography]
|
359
|
+
== Normative References
|
360
|
+
* [[[iev,IEV]]], _iev_
|
353
361
|
|
354
|
-
|
355
|
-
|
362
|
+
== Terms and definitions
|
363
|
+
=== Automation
|
356
364
|
|
357
|
-
|
358
|
-
|
365
|
+
[.source]
|
366
|
+
<<iev,clause="103-01-02">>
|
359
367
|
INPUT
|
360
368
|
expect(File.exist?("#{Dir.home}/.iev/cache")).to be true
|
361
369
|
|
362
|
-
|
363
370
|
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
364
371
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
365
|
-
expect(entry).to include("<fetched>#{Date.today
|
372
|
+
expect(entry).to include("<fetched>#{Date.today}</fetched>")
|
366
373
|
expect(xmlpp(entry)).to be_equivalent_to(xmlpp(ISO_123_DATED))
|
367
374
|
|
368
375
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
369
376
|
FileUtils.rm_rf File.expand_path("~/.iev/cache")
|
370
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
371
|
-
|
377
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
378
|
+
File.expand_path("~/.relaton/cache"), force: true
|
379
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
380
|
+
File.expand_path("~/.iev/cache"), force: true
|
372
381
|
end
|
373
382
|
|
374
383
|
it "does not fetch references for ISO references in preparation" do
|
375
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
384
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
385
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
376
386
|
FileUtils.rm_rf "relaton/cache"
|
377
|
-
Asciidoctor.convert(<<~"INPUT",
|
387
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
378
388
|
#{CACHED_ISOBIB_BLANK_HDR}
|
379
389
|
[bibliography]
|
380
390
|
== Normative References
|
@@ -387,17 +397,19 @@ EOS
|
|
387
397
|
expect(entry).to be nil
|
388
398
|
|
389
399
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
390
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
400
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
401
|
+
File.expand_path("~/.relaton/cache"), force: true
|
391
402
|
end
|
392
403
|
|
393
404
|
it "inserts prefixes to fetched reference identifiers other than ISO IEC" do
|
394
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
405
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
406
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
395
407
|
FileUtils.rm_rf "relaton/cache"
|
396
408
|
mock_isobib_get_123
|
397
409
|
mock_ietfbib_get_123
|
398
|
-
out = Asciidoctor.convert(<<~"INPUT",
|
410
|
+
out = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
399
411
|
#{CACHED_ISOBIB_BLANK_HDR}
|
400
|
-
|
412
|
+
|
401
413
|
<<iso123>>
|
402
414
|
<<ietf123>>
|
403
415
|
|
@@ -407,15 +419,16 @@ EOS
|
|
407
419
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
408
420
|
* [[[ietf123,RFC 123]]] _Standard_
|
409
421
|
INPUT
|
410
|
-
|
411
|
-
|
422
|
+
expect(out).to include '<eref type="inline" bibitemid="iso123" citeas="ISO 123:2001"/>'
|
423
|
+
expect(out).to include '<eref type="inline" bibitemid="ietf123" citeas="IETF RFC 123"/>'
|
412
424
|
end
|
413
425
|
|
414
426
|
it "activates global cache" do
|
415
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
427
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
428
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
416
429
|
FileUtils.rm_rf "relaton/cache"
|
417
|
-
|
418
|
-
Asciidoctor.convert(<<~"INPUT",
|
430
|
+
VCR.use_cassette "isobib_get_123_2001" do
|
431
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
419
432
|
#{CACHED_ISOBIB_BLANK_HDR}
|
420
433
|
[bibliography]
|
421
434
|
== Normative References
|
@@ -424,14 +437,14 @@ EOS
|
|
424
437
|
INPUT
|
425
438
|
end
|
426
439
|
|
427
|
-
#mock_isobib_get_123
|
428
|
-
#Asciidoctor.convert(<<~"INPUT",
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
#
|
433
|
-
|
434
|
-
#INPUT
|
440
|
+
# mock_isobib_get_123
|
441
|
+
# Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
442
|
+
# #{CACHED_ISOBIB_BLANK_HDR}
|
443
|
+
# [bibliography]
|
444
|
+
#== Normative References
|
445
|
+
#
|
446
|
+
# * [[[iso123,ISO 123:2001]]] _Standard_
|
447
|
+
# INPUT
|
435
448
|
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
436
449
|
expect(File.exist?("relaton/cache")).to be false
|
437
450
|
|
@@ -440,14 +453,16 @@ EOS
|
|
440
453
|
expect(entry).to_not be nil
|
441
454
|
|
442
455
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
443
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
456
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
457
|
+
File.expand_path("~/.relaton/cache"), force: true
|
444
458
|
end
|
445
459
|
|
446
460
|
it "activates local cache" do
|
447
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
461
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
462
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
448
463
|
FileUtils.rm_rf "relaton/cache"
|
449
464
|
mock_isobib_get_123
|
450
|
-
Asciidoctor.convert(<<~"INPUT",
|
465
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
451
466
|
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
452
467
|
[bibliography]
|
453
468
|
== Normative References
|
@@ -466,14 +481,16 @@ EOS
|
|
466
481
|
expect(entry).to_not be nil
|
467
482
|
|
468
483
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
469
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
484
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
485
|
+
File.expand_path("~/.relaton/cache"), force: true
|
470
486
|
end
|
471
487
|
|
472
488
|
it "renames local cache" do
|
473
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
489
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
490
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
474
491
|
FileUtils.rm_rf "test/cache"
|
475
492
|
mock_isobib_get_123
|
476
|
-
Asciidoctor.convert(<<~"INPUT",
|
493
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
477
494
|
= Document title
|
478
495
|
Author
|
479
496
|
:docfile: test.adoc
|
@@ -493,17 +510,19 @@ EOS
|
|
493
510
|
expect(entry).to_not be nil
|
494
511
|
|
495
512
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
496
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
513
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
514
|
+
File.expand_path("~/.relaton/cache"), force: true
|
497
515
|
end
|
498
516
|
|
499
517
|
it "activates only local cache" do
|
500
518
|
relaton_bib_file = File.expand_path("~/.relaton/cache")
|
501
519
|
relaton_bib_file1 = File.expand_path("~/.relaton-bib.pstore1")
|
502
520
|
FileUtils.rm_rf relaton_bib_file1 if File.exist? relaton_bib_file1
|
503
|
-
|
521
|
+
File.exist? relaton_bib_file and
|
522
|
+
FileUtils.mv(relaton_bib_file, relaton_bib_file1, force: true)
|
504
523
|
FileUtils.rm_rf "relaton/cache"
|
505
524
|
mock_isobib_get_123
|
506
|
-
Asciidoctor.convert(<<~"INPUT",
|
525
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
507
526
|
#{LOCAL_ONLY_CACHED_ISOBIB_BLANK_HDR}
|
508
527
|
[bibliography]
|
509
528
|
== Normative References
|
@@ -517,25 +536,27 @@ EOS
|
|
517
536
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
518
537
|
expect(entry).to_not be nil
|
519
538
|
|
520
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
539
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
540
|
+
File.expand_path("~/.relaton/cache"), force: true
|
521
541
|
end
|
522
542
|
|
523
543
|
it "fetches uncached references" do
|
524
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
544
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
545
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
525
546
|
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
526
547
|
bibitem = RelatonIsoBib::XMLParser.from_xml ISO_123_DATED
|
527
548
|
bibitem.instance_variable_set :@fetched, (Date.today - 2)
|
528
549
|
|
529
550
|
db.save_entry("ISO(ISO 123:2001)", bibitem.to_xml)
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
551
|
+
# {
|
552
|
+
# "fetched" => (Date.today - 2).to_s,
|
553
|
+
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED)
|
554
|
+
# }
|
555
|
+
# )
|
535
556
|
|
536
557
|
# mock_isobib_get_124
|
537
558
|
VCR.use_cassette "isobib_get_124" do
|
538
|
-
Asciidoctor.convert(<<~"INPUT",
|
559
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
539
560
|
#{CACHED_ISOBIB_BLANK_HDR}
|
540
561
|
[bibliography]
|
541
562
|
== Normative References
|
@@ -546,35 +567,37 @@ EOS
|
|
546
567
|
end
|
547
568
|
|
548
569
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
549
|
-
#expect(db.fetched("ISO(ISO 123:2001)")).to eq(Date.today.to_s)
|
550
|
-
expect(entry).to include("<fetched>#{
|
551
|
-
#expect(entry).to be_equivalent_to(ISO_123_DATED)
|
570
|
+
# expect(db.fetched("ISO(ISO 123:2001)")).to eq(Date.today.to_s)
|
571
|
+
expect(entry).to include("<fetched>#{Date.today - 2}</fetched>")
|
572
|
+
# expect(entry).to be_equivalent_to(ISO_123_DATED)
|
552
573
|
entry = db.load_entry("ISO(ISO 124:2014)")
|
553
|
-
#expect(db.fetched("ISO(ISO 124:2014)")).to eq(Date.today.to_s)
|
554
|
-
expect(entry).to include("<fetched>#{Date.today
|
574
|
+
# expect(db.fetched("ISO(ISO 124:2014)")).to eq(Date.today.to_s)
|
575
|
+
expect(entry).to include("<fetched>#{Date.today}</fetched>")
|
555
576
|
expect(xmlpp(entry)).to be_equivalent_to(xmlpp(ISO_124_DATED))
|
556
577
|
|
557
578
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
558
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
579
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
580
|
+
File.expand_path("~/.relaton/cache"), force: true
|
559
581
|
end
|
560
582
|
|
561
583
|
it "expires stale undated references" do
|
562
584
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
563
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
585
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
586
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
564
587
|
|
565
|
-
|
588
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
566
589
|
bibitem = RelatonIsoBib::XMLParser.from_xml ISO_123_SHORT
|
567
590
|
bibitem.instance_variable_set :@fetched, (Date.today - 90)
|
568
591
|
db.save_entry("ISO 123", bibitem.to_xml)
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
592
|
+
# {
|
593
|
+
# "fetched" => (Date.today - 90),
|
594
|
+
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_123_SHORT)
|
595
|
+
# }
|
596
|
+
# )
|
574
597
|
|
575
598
|
# mock_isobib_get_123_undated
|
576
599
|
VCR.use_cassette "isobib_get_123" do
|
577
|
-
Asciidoctor.convert(<<~"INPUT",
|
600
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
578
601
|
#{CACHED_ISOBIB_BLANK_HDR}
|
579
602
|
[bibliography]
|
580
603
|
== Normative References
|
@@ -584,115 +607,138 @@ EOS
|
|
584
607
|
end
|
585
608
|
|
586
609
|
entry = db.load_entry("ISO(ISO 123)")
|
587
|
-
#expect(db.fetched("ISO(ISO 123)")).to eq(Date.today.to_s)
|
588
|
-
expect(entry).to include("<fetched>#{Date.today
|
589
|
-
#expect(entry).to be_equivalent_to(ISO_123_UNDATED) # NN TEMP
|
590
|
-
|
610
|
+
# expect(db.fetched("ISO(ISO 123)")).to eq(Date.today.to_s)
|
611
|
+
expect(entry).to include("<fetched>#{Date.today}</fetched>")
|
612
|
+
# expect(entry).to be_equivalent_to(ISO_123_UNDATED) # NN TEMP
|
591
613
|
|
592
614
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
593
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
615
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
616
|
+
File.expand_path("~/.relaton/cache"), force: true
|
594
617
|
end
|
595
618
|
|
596
619
|
it "does not expire stale dated references" do
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
bibitem = RelatonIsoBib::XMLParser.from_xml ISO_123_DATED
|
602
|
-
bibitem.instance_variable_set :@fetched, (Date.today - 90)
|
603
|
-
|
604
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
605
|
-
db.save_entry("ISO(ISO 123:2001)", bibitem.to_xml)
|
606
|
-
# {
|
607
|
-
# "fetched" => (Date.today - 90),
|
608
|
-
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED)
|
609
|
-
# }
|
610
|
-
# )
|
611
|
-
|
612
|
-
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
613
|
-
#{CACHED_ISOBIB_BLANK_HDR}
|
614
|
-
[bibliography]
|
615
|
-
== Normative References
|
616
|
-
|
617
|
-
* [[[iso123,ISO 123:2001]]] _Standard_
|
618
|
-
INPUT
|
619
|
-
|
620
|
-
entry = db.load_entry("ISO(ISO 123:2001)")
|
621
|
-
#expect(db.fetched("ISO(ISO 123:2001)")).to eq((Date.today - 90).to_s)
|
622
|
-
expect(entry).to include("<fetched>#{Date.today - 90}</fetched>")
|
623
|
-
# expect(entry).to be_equivalent_to(ISO_123_DATED) It can't be true since fetched date is changed
|
624
|
-
|
625
|
-
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
626
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
627
|
-
end
|
628
|
-
end
|
620
|
+
VCR.use_cassette "isobib_get_123_2001" do
|
621
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
622
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
623
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
629
624
|
|
630
|
-
|
631
|
-
|
632
|
-
VCR.use_cassette "isobib_get_124" do
|
633
|
-
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
634
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
635
|
-
FileUtils.rm_rf "relaton/cache"
|
625
|
+
bibitem = RelatonIsoBib::XMLParser.from_xml ISO_123_DATED
|
626
|
+
bibitem.instance_variable_set :@fetched, (Date.today - 90)
|
636
627
|
|
637
|
-
|
638
|
-
|
628
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
629
|
+
db.save_entry("ISO(ISO 123:2001)", bibitem.to_xml)
|
639
630
|
# {
|
640
|
-
# "fetched" => Date.today,
|
631
|
+
# "fetched" => (Date.today - 90),
|
641
632
|
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED)
|
642
633
|
# }
|
643
634
|
# )
|
644
|
-
db.save_entry("ISO(ISO 124)", RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT).to_xml)
|
645
|
-
# {
|
646
|
-
# "fetched" => Date.today,
|
647
|
-
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT)
|
648
|
-
# }
|
649
|
-
# )
|
650
|
-
|
651
|
-
localdb = Relaton::Db.new "relaton/cache", nil
|
652
|
-
localdb.save_entry("ISO(ISO 124)", RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT_ALT).to_xml)
|
653
|
-
# {
|
654
|
-
# "fetched" => Date.today,
|
655
|
-
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT_ALT)
|
656
|
-
# }
|
657
|
-
# )
|
658
635
|
|
659
|
-
|
660
|
-
#{
|
661
|
-
[bibliography]
|
662
|
-
== Normative References
|
636
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
637
|
+
#{CACHED_ISOBIB_BLANK_HDR}
|
638
|
+
[bibliography]
|
639
|
+
== Normative References
|
663
640
|
|
664
|
-
* [[[
|
665
|
-
|
666
|
-
EOS
|
641
|
+
* [[[iso123,ISO 123:2001]]] _Standard_
|
642
|
+
INPUT
|
667
643
|
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
644
|
+
entry = db.load_entry("ISO(ISO 123:2001)")
|
645
|
+
# expect(db.fetched("ISO(ISO 123:2001)")).to eq((Date.today - 90).to_s)
|
646
|
+
expect(entry).to include("<fetched>#{Date.today - 90}</fetched>")
|
647
|
+
# expect(entry).to be_equivalent_to(ISO_123_DATED)
|
648
|
+
# It can't be true since fetched date is changed
|
673
649
|
|
674
|
-
|
675
|
-
|
676
|
-
|
650
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
651
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
652
|
+
File.expand_path("~/.relaton/cache"), force: true
|
653
|
+
end
|
677
654
|
end
|
655
|
+
|
656
|
+
it "prioritises local over global cache values" do
|
657
|
+
VCR.use_cassette "isobib_get_123_2001" do
|
658
|
+
VCR.use_cassette "isobib_get_124" do
|
659
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
660
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
661
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
662
|
+
FileUtils.rm_rf "relaton/cache"
|
663
|
+
|
664
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
665
|
+
db.save_entry("ISO(ISO 123:2001)",
|
666
|
+
RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED).to_xml)
|
667
|
+
# {
|
668
|
+
# "fetched" => Date.today,
|
669
|
+
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED)
|
670
|
+
# }
|
671
|
+
# )
|
672
|
+
db.save_entry("ISO(ISO 124)",
|
673
|
+
RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT).to_xml)
|
674
|
+
# {
|
675
|
+
# "fetched" => Date.today,
|
676
|
+
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT)
|
677
|
+
# }
|
678
|
+
# )
|
679
|
+
|
680
|
+
localdb = Relaton::Db.new "relaton/cache", nil
|
681
|
+
localdb.save_entry("ISO(ISO 124)",
|
682
|
+
RelatonIsoBib::XMLParser
|
683
|
+
.from_xml(ISO_124_SHORT_ALT).to_xml)
|
684
|
+
# {
|
685
|
+
# "fetched" => Date.today,
|
686
|
+
# "bib" => RelatonIsoBib::XMLParser.from_xml(ISO_124_SHORT_ALT)
|
687
|
+
# }
|
688
|
+
# )
|
689
|
+
|
690
|
+
input = <<~DOC
|
691
|
+
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
692
|
+
[bibliography]
|
693
|
+
== Normative References
|
694
|
+
|
695
|
+
* [[[ISO123-2001,ISO 123:2001]]] _Standard_
|
696
|
+
* [[[ISO124,ISO 124]]] _Standard_
|
697
|
+
DOC
|
698
|
+
|
699
|
+
Asciidoctor.convert(input, *OPTIONS)
|
700
|
+
expect(db.load_entry("ISO(ISO 123:2001)")).to include("Rubber latex")
|
701
|
+
expect(db.load_entry("ISO(ISO 124)"))
|
702
|
+
.to include("Latex, rubber -- Determination of total solids content")
|
703
|
+
expect(localdb.load_entry("ISO(ISO 123:2001)"))
|
704
|
+
.to include("Rubber latex")
|
705
|
+
expect(localdb.load_entry("ISO(ISO 124)"))
|
706
|
+
.to include("Latex, rubber -- Replacement")
|
707
|
+
|
708
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
709
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
710
|
+
File.expand_path("~/.relaton/cache"), force: true
|
711
|
+
end
|
712
|
+
end
|
678
713
|
end
|
679
714
|
|
680
|
-
private
|
715
|
+
private
|
681
716
|
|
682
717
|
def mock_isobib_get_123
|
683
|
-
expect(RelatonIso::IsoBibliography).to receive(:get)
|
718
|
+
expect(RelatonIso::IsoBibliography).to receive(:get)
|
719
|
+
.with("ISO 123", "2001",
|
720
|
+
{ lang: "en", title: "<em>Standard</em>", usrlbl: nil })
|
721
|
+
.and_return(RelatonIsoBib::XMLParser.from_xml(ISO_123_DATED))
|
684
722
|
end
|
685
723
|
|
686
724
|
def mock_isobib_get_123_undated
|
687
|
-
expect(RelatonIso::IsoBibliography).to receive(:get)
|
725
|
+
expect(RelatonIso::IsoBibliography).to receive(:get)
|
726
|
+
.with("ISO 123", nil,
|
727
|
+
{ lang: "en", title: "<em>Standard</em>", usrlbl: nil })
|
728
|
+
.and_return(RelatonIsoBib::XMLParser.from_xml(ISO_123_UNDATED))
|
688
729
|
end
|
689
730
|
|
690
731
|
def mock_isobib_get_124
|
691
|
-
expect(RelatonIso::IsoBibliography).to receive(:get)
|
732
|
+
expect(RelatonIso::IsoBibliography).to receive(:get)
|
733
|
+
.with("ISO 124", "2014",
|
734
|
+
{ lang: "en", title: "<em>Standard</em>", usrlbl: nil })
|
735
|
+
.and_return(RelatonIsoBib::XMLParser.from_xml(ISO_124_DATED))
|
692
736
|
end
|
693
737
|
|
694
738
|
def mock_ietfbib_get_123
|
695
|
-
expect(RelatonIetf::IetfBibliography).to receive(:get)
|
739
|
+
expect(RelatonIetf::IetfBibliography).to receive(:get)
|
740
|
+
.with("RFC 123", nil,
|
741
|
+
{ lang: "en", title: "<em>Standard</em>", usrlbl: nil })
|
742
|
+
.and_return(RelatonIsoBib::XMLParser.from_xml(IETF_123_SHORT))
|
696
743
|
end
|
697
|
-
|
698
744
|
end
|