metanorma-iso 1.0.6 → 1.0.7
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/README.adoc +29 -363
- data/lib/asciidoctor/iso/base.rb +3 -2
- data/lib/asciidoctor/iso/biblio.rng +12 -0
- data/lib/asciidoctor/iso/isostandard.rng +10 -5
- data/lib/asciidoctor/iso/validate.rb +5 -3
- data/lib/asciidoctor/iso/validate_section.rb +1 -1
- data/lib/isodoc/iso/html/isodoc.scss +1 -1
- data/lib/isodoc/iso/html/style-human.scss +8 -8
- data/lib/isodoc/iso/html/style-iso.scss +7 -7
- data/lib/isodoc/iso/html/wordstyle.scss +67 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/asciidoctor-iso/base_spec.rb +23 -9
- data/spec/asciidoctor-iso/isobib_cache_spec.rb +45 -45
- data/spec/asciidoctor-iso/refs_spec.rb +1 -1
- data/spec/asciidoctor-iso/validate_spec.rb +14 -69
- data/spec/assets/iso.doc +8 -8
- data/spec/examples/rice.adoc +2 -1
- data/spec/examples/rice.preview.html +8 -8
- data/spec/isodoc/iso_spec.rb +6 -5
- data/spec/isodoc/postproc_spec.rb +25 -25
- data/spec/metanorma/processor_spec.rb +2 -1
- data/spec/spec_helper.rb +4 -3
- metadata +2 -2
data/lib/asciidoctor/iso/base.rb
CHANGED
@@ -5,6 +5,7 @@ require "pathname"
|
|
5
5
|
require "open-uri"
|
6
6
|
require "pp"
|
7
7
|
require "isodoc"
|
8
|
+
require "fileutils"
|
8
9
|
|
9
10
|
module Asciidoctor
|
10
11
|
module ISO
|
@@ -28,11 +29,11 @@ module Asciidoctor
|
|
28
29
|
unless node.attr("nodoc") || !node.attr("docfile")
|
29
30
|
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
30
31
|
html_converter_alt(node).convert(@filename + ".xml")
|
31
|
-
|
32
|
+
FileUtils.mv "#{@filename}.html", "#{@filename}_alt.html"
|
32
33
|
html_converter(node).convert(@filename + ".xml")
|
33
34
|
doc_converter(node).convert(@filename + ".xml")
|
34
35
|
end
|
35
|
-
@files_to_delete.each { |f|
|
36
|
+
@files_to_delete.each { |f| FileUtils.rm f }
|
36
37
|
ret
|
37
38
|
end
|
38
39
|
|
@@ -259,6 +259,9 @@
|
|
259
259
|
</define>
|
260
260
|
<define name="uri">
|
261
261
|
<element name="uri">
|
262
|
+
<optional>
|
263
|
+
<attribute name="type"/>
|
264
|
+
</optional>
|
262
265
|
<data type="anyURI"/>
|
263
266
|
</element>
|
264
267
|
</define>
|
@@ -444,6 +447,9 @@
|
|
444
447
|
<ref name="BibItemType"/>
|
445
448
|
</attribute>
|
446
449
|
</optional>
|
450
|
+
<optional>
|
451
|
+
<ref name="fetched"/>
|
452
|
+
</optional>
|
447
453
|
<choice>
|
448
454
|
<oneOrMore>
|
449
455
|
<ref name="btitle"/>
|
@@ -523,6 +529,11 @@
|
|
523
529
|
<ref name="FormattedString"/>
|
524
530
|
</element>
|
525
531
|
</define>
|
532
|
+
<define name="fetched">
|
533
|
+
<element name="fetched">
|
534
|
+
<data type="dateTime"/>
|
535
|
+
</element>
|
536
|
+
</define>
|
526
537
|
<define name="validity">
|
527
538
|
<element name="validity">
|
528
539
|
<optional>
|
@@ -599,6 +610,7 @@
|
|
599
610
|
<value>issued</value>
|
600
611
|
<value>transmitted</value>
|
601
612
|
<value>copied</value>
|
613
|
+
<value>unchanged</value>
|
602
614
|
</choice>
|
603
615
|
</attribute>
|
604
616
|
<choice>
|
@@ -69,6 +69,9 @@
|
|
69
69
|
<ref name="BibItemType"/>
|
70
70
|
</attribute>
|
71
71
|
</optional>
|
72
|
+
<optional>
|
73
|
+
<ref name="fetched"/>
|
74
|
+
</optional>
|
72
75
|
<choice>
|
73
76
|
<oneOrMore>
|
74
77
|
<ref name="btitle"/>
|
@@ -788,13 +791,15 @@
|
|
788
791
|
</define>
|
789
792
|
<define name="editorialgroup">
|
790
793
|
<element name="editorialgroup">
|
791
|
-
<
|
792
|
-
|
794
|
+
<oneOrMore>
|
795
|
+
<ref name="technical-committee"/>
|
796
|
+
</oneOrMore>
|
797
|
+
<zeroOrMore>
|
793
798
|
<ref name="subcommittee"/>
|
794
|
-
</
|
795
|
-
<
|
799
|
+
</zeroOrMore>
|
800
|
+
<zeroOrMore>
|
796
801
|
<ref name="workgroup"/>
|
797
|
-
</
|
802
|
+
</zeroOrMore>
|
798
803
|
<optional>
|
799
804
|
<ref name="secretariat"/>
|
800
805
|
</optional>
|
@@ -146,9 +146,11 @@ module Asciidoctor
|
|
146
146
|
|
147
147
|
def locality_erefs_validate(root)
|
148
148
|
root.xpath("//eref[locality]").each do |t|
|
149
|
-
|
150
|
-
|
151
|
-
"
|
149
|
+
if /^(ISO|IEC)/.match t["citeas"]
|
150
|
+
unless /^:[ ]?(\d+{4}|--)$/.match t["citeas"]
|
151
|
+
warn "ISO: undated reference #{t['citeas']} should not contain "\
|
152
|
+
"specific elements"
|
153
|
+
end
|
152
154
|
end
|
153
155
|
end
|
154
156
|
end
|
@@ -178,7 +178,7 @@ module Asciidoctor
|
|
178
178
|
"//references[title = 'Normative References']/bibitem".freeze
|
179
179
|
|
180
180
|
def asset_title_style(root)
|
181
|
-
root.xpath("//figure[image][not(
|
181
|
+
root.xpath("//figure[image][not(name)]").each do |node|
|
182
182
|
style_warning(node, "Figure should have title", nil)
|
183
183
|
end
|
184
184
|
root.xpath("//table[not(name)]").each do |node|
|
@@ -658,7 +658,7 @@ div.example {
|
|
658
658
|
margin-left:70.9pt;
|
659
659
|
text-indent:-70.9pt;
|
660
660
|
}
|
661
|
-
p.example, li.example, div.example, td.example
|
661
|
+
p.example, li.example, div.example, td.example
|
662
662
|
{ margin:0in;
|
663
663
|
margin-bottom:.0001pt;
|
664
664
|
mso-pagination:none;
|
@@ -408,14 +408,14 @@ p.Terms {
|
|
408
408
|
ul li {
|
409
409
|
list-style: none;
|
410
410
|
}
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
411
|
+
|
412
|
+
ul > li > p:first-child:before {
|
413
|
+
content: "—";
|
414
|
+
display: inline-block;
|
415
|
+
width: 1em;
|
416
|
+
margin-left: -1.5em;
|
417
|
+
margin-right: 0.5em;
|
418
|
+
}
|
419
419
|
|
420
420
|
li p {
|
421
421
|
/* display: inline-block; */
|
@@ -251,13 +251,13 @@ h2 p {
|
|
251
251
|
list-style: none;
|
252
252
|
}
|
253
253
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
254
|
+
ul > li > p:first-child:before {
|
255
|
+
content: "—";
|
256
|
+
display: inline-block;
|
257
|
+
width: 1em;
|
258
|
+
margin-left: -1.5em;
|
259
|
+
margin-right: 0.5em;
|
260
|
+
}
|
261
261
|
|
262
262
|
li p {
|
263
263
|
/* display: inline-block; */
|
@@ -108,6 +108,72 @@ p.MsoBlockText, li.MsoBlockText, div.MsoBlockText
|
|
108
108
|
mso-themecolor:accent1;
|
109
109
|
mso-ansi-language:EN-AU;
|
110
110
|
font-style:italic;}
|
111
|
+
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
|
112
|
+
{mso-style-priority:34;
|
113
|
+
mso-style-unhide:no;
|
114
|
+
mso-style-qformat:yes;
|
115
|
+
margin-top:0cm;
|
116
|
+
margin-right:0cm;
|
117
|
+
margin-bottom:0cm;
|
118
|
+
/* do not put in margin-left, it is specific to list level */
|
119
|
+
margin-bottom:.0001pt;
|
120
|
+
mso-add-space:auto;
|
121
|
+
mso-pagination:widow-orphan;
|
122
|
+
font-size:11.0pt;
|
123
|
+
font-family:$bodyfont;
|
124
|
+
mso-ansi-language:EN-AU;
|
125
|
+
mso-fareast-language:EN-US;}
|
126
|
+
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
|
127
|
+
{mso-style-priority:34;
|
128
|
+
mso-style-unhide:no;
|
129
|
+
mso-style-qformat:yes;
|
130
|
+
mso-style-type:export-only;
|
131
|
+
margin-top:0cm;
|
132
|
+
margin-right:0cm;
|
133
|
+
margin-bottom:0cm;
|
134
|
+
/* do not put in margin-left, it is specific to list level */
|
135
|
+
margin-bottom:.0001pt;
|
136
|
+
mso-add-space:auto;
|
137
|
+
mso-pagination:widow-orphan;
|
138
|
+
font-size:11.0pt;
|
139
|
+
font-family:$bodyfont;
|
140
|
+
mso-ansi-language:EN-AU;
|
141
|
+
mso-fareast-language:EN-US;}
|
142
|
+
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
|
143
|
+
{mso-style-priority:34;
|
144
|
+
mso-style-unhide:no;
|
145
|
+
mso-style-qformat:yes;
|
146
|
+
mso-style-type:export-only;
|
147
|
+
margin-top:0cm;
|
148
|
+
margin-right:0cm;
|
149
|
+
margin-bottom:0cm;
|
150
|
+
/* do not put in margin-left, it is specific to list level */
|
151
|
+
margin-bottom:.0001pt;
|
152
|
+
mso-add-space:auto;
|
153
|
+
mso-pagination:widow-orphan;
|
154
|
+
font-size:11.0pt;
|
155
|
+
font-family:$bodyfont;
|
156
|
+
mso-ansi-language:EN-AU;
|
157
|
+
mso-fareast-language:EN-US;}
|
158
|
+
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
|
159
|
+
{mso-style-priority:34;
|
160
|
+
mso-style-unhide:no;
|
161
|
+
mso-style-qformat:yes;
|
162
|
+
mso-style-type:export-only;
|
163
|
+
margin-top:0cm;
|
164
|
+
margin-right:0cm;
|
165
|
+
margin-bottom:0cm;
|
166
|
+
/* do not put in margin-left, it is specific to list level */
|
167
|
+
margin-bottom:12.0pt;
|
168
|
+
mso-add-space:auto;
|
169
|
+
mso-pagination:widow-orphan;
|
170
|
+
font-size:11.0pt;
|
171
|
+
font-family:$bodyfont;
|
172
|
+
mso-ansi-language:EN-AU;
|
173
|
+
mso-fareast-language:EN-US;}
|
174
|
+
div.figure
|
175
|
+
{text-align: center;}
|
176
|
+
|
111
177
|
h1
|
112
178
|
{mso-style-priority:1;
|
113
179
|
mso-style-unhide:no;
|
@@ -181,6 +247,7 @@ h1.Annex
|
|
181
247
|
mso-hyphenate:none;
|
182
248
|
tab-stops:27.0pt 35.0pt;
|
183
249
|
font-size:12.0pt;
|
250
|
+
font-weight:bold;
|
184
251
|
mso-bidi-font-size:11.0pt;
|
185
252
|
font-family:$headerfont;
|
186
253
|
mso-fareast-font-family:$headerfont;
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require "fileutils"
|
2
3
|
|
3
4
|
RSpec.describe Asciidoctor::ISO do
|
4
5
|
it "has a version number" do
|
@@ -6,7 +7,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
6
7
|
end
|
7
8
|
|
8
9
|
it "generates output for the Rice document" do
|
9
|
-
|
10
|
+
FileUtils.rm_f %w(spec/examples/rice.xml spec/examples/rice.doc spec/examples/rice.html spec/examples/rice_alt.html)
|
11
|
+
system "cd spec/examples; asciidoctor --trace -b iso -r 'metanorma-iso' rice.adoc; cd ../.."
|
10
12
|
expect(File.exist?("spec/examples/rice.xml")).to be true
|
11
13
|
expect(File.exist?("spec/examples/rice.doc")).to be true
|
12
14
|
expect(File.exist?("spec/examples/rice.html")).to be true
|
@@ -24,7 +26,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
24
26
|
end
|
25
27
|
|
26
28
|
it "converts a blank document" do
|
27
|
-
|
29
|
+
FileUtils.rm_f "test.doc"
|
28
30
|
expect(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
|
29
31
|
= Document title
|
30
32
|
Author
|
@@ -60,6 +62,15 @@ RSpec.describe Asciidoctor::ISO do
|
|
60
62
|
:workgroup: WG
|
61
63
|
:workgroup-number: 3
|
62
64
|
:workgroup-type: C
|
65
|
+
:technical-committee_2: TC1
|
66
|
+
:technical-committee-number_2: 11
|
67
|
+
:technical-committee-type_2: A1
|
68
|
+
:subcommittee_2: SC1
|
69
|
+
:subcommittee-number_2: 21
|
70
|
+
:subcommittee-type_2: B1
|
71
|
+
:workgroup_2: WG1
|
72
|
+
:workgroup-number_2: 31
|
73
|
+
:workgroup-type_2: C1
|
63
74
|
:secretariat: SECRETARIAT
|
64
75
|
:copyright-year: 2001
|
65
76
|
:docstage: 10
|
@@ -122,8 +133,11 @@ RSpec.describe Asciidoctor::ISO do
|
|
122
133
|
</copyright>
|
123
134
|
<editorialgroup>
|
124
135
|
<technical-committee number="1" type="A">TC</technical-committee>
|
136
|
+
<technical-committee number="11" type="A1">TC1</technical-committee>
|
125
137
|
<subcommittee number="2" type="B">SC</subcommittee>
|
138
|
+
<subcommittee number="21" type="B1">SC1</subcommittee>
|
126
139
|
<workgroup number="3" type="C">WG</workgroup>
|
140
|
+
<workgroup number="31" type="C1">WG1</workgroup>
|
127
141
|
<secretariat>SECRETARIAT</secretariat>
|
128
142
|
</editorialgroup>
|
129
143
|
<ics>
|
@@ -257,7 +271,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
257
271
|
end
|
258
272
|
|
259
273
|
it "reads scripts into blank HTML document" do
|
260
|
-
|
274
|
+
FileUtils.rm_f "test.html"
|
261
275
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
262
276
|
= Document title
|
263
277
|
Author
|
@@ -269,7 +283,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
269
283
|
end
|
270
284
|
|
271
285
|
it "uses default fonts" do
|
272
|
-
|
286
|
+
FileUtils.rm_f "test.html"
|
273
287
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
274
288
|
= Document title
|
275
289
|
Author
|
@@ -283,7 +297,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
283
297
|
end
|
284
298
|
|
285
299
|
it "uses default fonts for alt doc" do
|
286
|
-
|
300
|
+
FileUtils.rm_f "test_alt.html"
|
287
301
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
288
302
|
= Document title
|
289
303
|
Author
|
@@ -297,7 +311,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
297
311
|
end
|
298
312
|
|
299
313
|
it "uses Chinese fonts" do
|
300
|
-
|
314
|
+
FileUtils.rm_f "test.html"
|
301
315
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
302
316
|
= Document title
|
303
317
|
Author
|
@@ -312,7 +326,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
312
326
|
end
|
313
327
|
|
314
328
|
it "uses specified fonts" do
|
315
|
-
|
329
|
+
FileUtils.rm_f "test.html"
|
316
330
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
317
331
|
= Document title
|
318
332
|
Author
|
@@ -330,8 +344,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
330
344
|
end
|
331
345
|
|
332
346
|
it "strips MS-specific CSS" do
|
333
|
-
|
334
|
-
|
347
|
+
FileUtils.rm_f "test.html"
|
348
|
+
FileUtils.rm_f "test.doc"
|
335
349
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
336
350
|
= Document title
|
337
351
|
Author
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "isobib"
|
3
|
+
require "fileutils"
|
3
4
|
|
4
5
|
RSpec.describe Asciidoctor::ISO do
|
5
6
|
|
@@ -44,10 +45,10 @@ EOS
|
|
44
45
|
EOS
|
45
46
|
|
46
47
|
it "does not activate biblio caches if isobib disabled" do
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
48
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
49
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
50
|
+
FileUtils.rm_f "test.relaton.pstore"
|
51
|
+
FileUtils.rm_f "test.iev.pstore"
|
51
52
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
52
53
|
#{ASCIIDOC_BLANK_HDR}
|
53
54
|
[bibliography]
|
@@ -60,17 +61,17 @@ EOS
|
|
60
61
|
expect(File.exist?("test.relaton.pstore")).to be false
|
61
62
|
expect(File.exist?("test.iev.pstore")).to be false
|
62
63
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
65
|
+
FileUtils.rm_f File.expand_path("~/.iev.pstore")
|
66
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
67
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
67
68
|
end
|
68
69
|
|
69
70
|
it "does not activate biblio caches if isobib caching disabled" do
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
71
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
72
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
73
|
+
FileUtils.rm_f "test.relaton.pstore"
|
74
|
+
FileUtils.rm_f "test.iev.pstore"
|
74
75
|
mock_isobib_get_123
|
75
76
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
76
77
|
#{ISOBIB_BLANK_HDR}
|
@@ -84,18 +85,18 @@ EOS
|
|
84
85
|
expect(File.exist?("test.relaton.pstore")).to be false
|
85
86
|
expect(File.exist?("test.iev.pstore")).to be false
|
86
87
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
89
|
+
FileUtils.rm_f File.expand_path("~/.iev.pstore")
|
90
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
91
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
91
92
|
end
|
92
93
|
|
93
94
|
it "flushes biblio caches" do
|
94
|
-
|
95
|
-
|
95
|
+
FileUtils.cp File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1")
|
96
|
+
FileUtils.cp File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1")
|
96
97
|
|
97
98
|
File.open("#{Dir.home}/.relaton-bib.pstore", "w") { |f| f.write "XXX" }
|
98
|
-
|
99
|
+
FileUtils.rm_f File.expand_path("~/.iev.pstore")
|
99
100
|
|
100
101
|
mock_isobib_get_123
|
101
102
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
@@ -113,15 +114,15 @@ EOS
|
|
113
114
|
expect(entry["fetched"].to_s).to eq(Date.today.to_s)
|
114
115
|
expect(entry["bib"].to_xml).to be_equivalent_to(ISOBIB_123_DATED)
|
115
116
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
117
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
118
|
+
FileUtils.rm_f File.expand_path("~/.iev.pstore")
|
119
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
120
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
120
121
|
end
|
121
122
|
|
122
123
|
it "activates global cache" do
|
123
|
-
|
124
|
-
|
124
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
125
|
+
FileUtils.rm_f "test.relaton.pstore"
|
125
126
|
mock_isobib_get_123
|
126
127
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
127
128
|
#{CACHED_ISOBIB_BLANK_HDR}
|
@@ -137,13 +138,13 @@ EOS
|
|
137
138
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
138
139
|
expect(entry).to_not be nil
|
139
140
|
|
140
|
-
|
141
|
-
|
141
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
142
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
142
143
|
end
|
143
144
|
|
144
145
|
it "activates local cache" do
|
145
|
-
|
146
|
-
|
146
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
147
|
+
FileUtils.rm_f "test.relaton.pstore"
|
147
148
|
mock_isobib_get_123
|
148
149
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
149
150
|
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
@@ -163,13 +164,12 @@ EOS
|
|
163
164
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
164
165
|
expect(entry).to_not be nil
|
165
166
|
|
166
|
-
|
167
|
-
|
167
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
168
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
168
169
|
end
|
169
170
|
|
170
|
-
|
171
171
|
it "fetches uncached references" do
|
172
|
-
|
172
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
173
173
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
174
174
|
db.save_entry("ISO(ISO 123:2001)",
|
175
175
|
{
|
@@ -196,12 +196,12 @@ EOS
|
|
196
196
|
expect(entry["fetched"].to_s).to eq(Date.today.to_s)
|
197
197
|
expect(entry["bib"].to_xml).to be_equivalent_to(ISOBIB_124_DATED)
|
198
198
|
|
199
|
-
|
200
|
-
|
199
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
200
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
201
201
|
end
|
202
202
|
|
203
203
|
it "expires stale undated references" do
|
204
|
-
|
204
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
205
205
|
|
206
206
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
207
207
|
db.save_entry("ISO 123",
|
@@ -225,12 +225,12 @@ EOS
|
|
225
225
|
expect(entry["fetched"].to_s).to eq(Date.today.to_s)
|
226
226
|
expect(entry["bib"].to_xml).to be_equivalent_to(ISOBIB_123_UNDATED)
|
227
227
|
|
228
|
-
|
229
|
-
|
228
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
229
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
230
230
|
end
|
231
231
|
|
232
232
|
it "does not expire stale dated references" do
|
233
|
-
|
233
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
234
234
|
|
235
235
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
236
236
|
db.save_entry("ISO(ISO 123:2001)",
|
@@ -252,13 +252,13 @@ EOS
|
|
252
252
|
expect(entry["fetched"].to_s).to eq((Date.today - 90).to_s)
|
253
253
|
expect(entry["bib"].to_xml).to be_equivalent_to(ISO_123_SHORT)
|
254
254
|
|
255
|
-
|
256
|
-
|
255
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
256
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
257
257
|
end
|
258
258
|
|
259
259
|
it "prioritises local over global cache values" do
|
260
|
-
|
261
|
-
|
260
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
261
|
+
FileUtils.rm_f "test.relaton.pstore"
|
262
262
|
|
263
263
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
264
264
|
db.save_entry("ISO(ISO 123:2001)",
|
@@ -311,8 +311,8 @@ EOS
|
|
311
311
|
expect(localdb.load_entry("ISO(ISO 123:2001)")["bib"].to_xml).to be_equivalent_to(ISO_123_SHORT)
|
312
312
|
expect(localdb.load_entry("ISO(ISO 124)")["bib"].to_xml).to be_equivalent_to(ISO_124_SHORT_ALT)
|
313
313
|
|
314
|
-
|
315
|
-
|
314
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
315
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
316
316
|
end
|
317
317
|
|
318
318
|
private
|