metanorma-standoc 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +212 -0
- data/lib/asciidoctor/standoc/base.rb +7 -6
- data/lib/asciidoctor/standoc/biblio.rng +42 -3
- data/lib/asciidoctor/standoc/cleanup.rb +1 -1
- data/lib/asciidoctor/standoc/cleanup_footnotes.rb +1 -1
- data/lib/asciidoctor/standoc/front.rb +10 -0
- data/lib/asciidoctor/standoc/inline.rb +1 -0
- data/lib/asciidoctor/standoc/macros.rb +3 -1
- data/lib/asciidoctor/standoc/ref.rb +3 -4
- data/lib/asciidoctor/standoc/utils.rb +13 -1
- data/lib/metanorma/standoc/processor.rb +2 -2
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +4 -4
- data/spec/asciidoctor-standoc/base_spec.rb +17 -5
- data/spec/asciidoctor-standoc/cleanup_spec.rb +151 -113
- data/spec/asciidoctor-standoc/inline_spec.rb +10 -2
- data/spec/asciidoctor-standoc/isobib_cache_spec.rb +167 -129
- data/spec/asciidoctor-standoc/macros_spec.rb +1 -1
- data/spec/asciidoctor-standoc/refs_spec.rb +283 -215
- data/spec/asciidoctor-standoc/validate_spec.rb +10 -9
- data/spec/examples/iso_123_.xml +1 -0
- data/spec/examples/iso_123_all_parts.xml +1 -0
- data/spec/examples/iso_123_no_year_note.xml +1 -0
- data/spec/examples/iso_124_.xml +1 -0
- data/spec/examples/iso_216_.xml +2 -1
- data/spec/examples/iso_iec_12382_.xml +2 -1
- data/spec/metanorma/processor_spec.rb +5 -5
- data/spec/spec_helper.rb +7 -0
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +879 -0
- data/spec/vcr_cassettes/isobib_get_123.yml +667 -0
- data/spec/vcr_cassettes/isobib_get_124.yml +1201 -0
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +129 -0
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +424 -0
- metadata +34 -28
@@ -1,5 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "isobib"
|
3
|
+
require "fileutils"
|
3
4
|
|
4
5
|
RSpec.describe Asciidoctor::Standoc do
|
5
6
|
|
@@ -14,6 +15,7 @@ EOS
|
|
14
15
|
|
15
16
|
ISO_124_SHORT = <<~EOS
|
16
17
|
<bibitem type="international-standard" id="ISO124">
|
18
|
+
<fetched>#{Date.today}</fetched>
|
17
19
|
<title format="text/plain" language="en" script="Latn">Latex, rubber -- Determination of total solids content</title>
|
18
20
|
<docidentifier type="ISO">ISO 124</docidentifier>
|
19
21
|
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
@@ -23,31 +25,44 @@ EOS
|
|
23
25
|
|
24
26
|
ISO_124_SHORT_ALT = <<~EOS
|
25
27
|
<bibitem type="international-standard" id="ISO124">
|
28
|
+
<fetched>#{Date.today}</fetched>
|
26
29
|
<title format="text/plain" language="en" script="Latn">Latex, rubber -- Replacement</title>
|
27
30
|
<docidentifier type="ISO">ISO 124</docidentifier>
|
28
31
|
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
29
|
-
<status>
|
32
|
+
<status><stage>60</stage><substage>60</substage></status>
|
30
33
|
</bibitem>
|
31
34
|
EOS
|
32
35
|
|
33
36
|
ISO_123_DATED = <<~EOS
|
34
|
-
<bibitem type="international-standard" id="ISO123-2001">
|
37
|
+
<bibitem type="international-standard" id="ISO123-2001"> <fetched>#{Date.today}</fetched> <title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title> <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Échantillonnage</title> <uri type="src">https://www.iso.org/standard/23281.html</uri> <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri> <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri> <docidentifier type="ISO">ISO 123:2001</docidentifier> <date type="published"> <on>2001</on> </date> <contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor> <edition>3</edition> <language>en</language> <language>fr</language> <script>Latn</script> <status><stage>90</stage><substage>93</substage></status> <copyright> <from>2001</from> <owner> <organization> <name>ISO</name> </organization> </owner> </copyright> <relation type="obsoletes"> <bibitem> <formattedref>ISO 123:1985</formattedref> </bibitem> </relation> <relation type="updates"> <bibitem> <formattedref>ISO 123:2001</formattedref> </bibitem> </relation> <editorialgroup> <technical_committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical_committee> </editorialgroup> <ics><code>83.040.10</code><text>Latex and raw rubber</text></ics> </bibitem>
|
35
38
|
EOS
|
36
39
|
|
37
40
|
ISO_123_UNDATED = <<~EOS
|
38
|
-
<bibitem type="international-standard" id="ISO123">
|
41
|
+
<bibitem type="international-standard" id="ISO123"> <fetched>#{Date.today}</fetched>
|
42
|
+
<title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title> <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Échantillonnage</title>
|
43
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri> <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri> <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
44
|
+
<docidentifier type="ISO">ISO 123</docidentifier>
|
45
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
46
|
+
<edition>3</edition> <language>en</language> <language>fr</language> <script>Latn</script> <status><stage>90</stage><substage>93</substage></status>
|
47
|
+
<copyright> <from>2001</from> <owner> <organization> <name>ISO</name> </organization> </owner> </copyright>
|
48
|
+
<relation type="obsoletes"> <bibitem> <formattedref>ISO 123:1985</formattedref> </bibitem> </relation>
|
49
|
+
<relation type="updates"> <bibitem> <formattedref>ISO 123:2001</formattedref> </bibitem> </relation>
|
50
|
+
<relation type="instance"> <bibitem type="international-standard"> <fetched>#{Date.today}</fetched> <title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title> <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Échantillonnage</title> <uri type="src">https://www.iso.org/standard/23281.html</uri> <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri> <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri> <docidentifier type="ISO">ISO 123:2001</docidentifier> <date type="published"> <on>2001</on> </date> <contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor> <edition>3</edition> <language>en</language> <language>fr</language> <script>Latn</script> <status> <stage>90</stage> <substage>93</substage> </status> <copyright> <from>2001</from> <owner> <organization> <name>ISO</name> </organization> </owner> </copyright> <relation type="obsoletes"> <bibitem> <formattedref>ISO 123:1985</formattedref> </bibitem> </relation> <relation type="updates"> <bibitem> <formattedref>ISO 123:2001</formattedref> </bibitem> </relation> <editorialgroup> <technical_committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical_committee> </editorialgroup> <ics> <code>83.040.10</code> <text>Latex and raw rubber</text> </ics> </bibitem> </relation>
|
51
|
+
<editorialgroup><technical_committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical_committee></editorialgroup>
|
52
|
+
<ics><code>83.040.10</code><text>Latex and raw rubber</text></ics></bibitem>
|
39
53
|
EOS
|
40
54
|
|
41
|
-
|
42
55
|
ISO_124_DATED = <<~EOS
|
43
|
-
<bibitem type="international-standard" id="ISO124-2014">
|
56
|
+
<bibitem type="international-standard" id="ISO124-2014"> <fetched>#{Date.today}</fetched> <title format="text/plain" language="en" script="Latn">Latex, rubber -- Determination of total solids content</title> <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Détermination des matières solides totales</title> <uri type="src">https://www.iso.org/standard/61884.html</uri> <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:61884:en</uri> <uri type="rss">https://www.iso.org/contents/data/standard/06/18/61884.detail.rss</uri> <docidentifier type="ISO">ISO 124:2014</docidentifier> <date type="published"> <on>2014</on> </date> <contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor> <edition>7</edition> <language>en</language> <language>fr</language> <script>Latn</script> <abstract format="plain" language="en" script="Latn">ISO 124:2014 specifies methods for the determination of the total solids content of natural rubber field and concentrated latices and synthetic rubber latex. These methods are not necessarily suitable for latex from natural sources other than the Hevea brasiliensis, for vulcanized latex, for compounded latex, or for artificial dispersions of rubber.</abstract> <abstract format="plain" language="fr" script="Latn">L'ISO 124:2014 spécifie des méthodes pour la détermination des matières solides totales dans le latex de plantation, le latex de concentré de caoutchouc naturel et le latex de caoutchouc synthétique. Ces méthodes ne conviennent pas nécessairement au latex d'origine naturelle autre que celui de l'Hevea brasiliensis, au latex vulcanisé, aux mélanges de latex, ou aux dispersions artificielles de caoutchouc.</abstract> <status><stage>60</stage><substage>60</substage></status> <copyright> <from>2014</from> <owner> <organization> <name>ISO</name> </organization> </owner> </copyright> <relation type="obsoletes"> <bibitem> <formattedref>ISO 124:2011</formattedref> </bibitem> </relation><editorialgroup><technical_committee number="45" type="TC">ISO/TC 45/SC 3Raw materials (including latex) for use in the rubber industry</technical_committee></editorialgroup><ics><code>83.040.10</code><text>Latex and raw rubber</text></ics></bibitem>
|
44
57
|
EOS
|
45
58
|
|
46
59
|
it "does not activate biblio caches if isobib disabled" do
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
60
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
61
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
62
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
63
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
64
|
+
FileUtils.rm_rf "test.relaton.pstore"
|
65
|
+
FileUtils.rm_rf "test.iev.pstore"
|
51
66
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
52
67
|
#{ASCIIDOC_BLANK_HDR}
|
53
68
|
[bibliography]
|
@@ -60,17 +75,19 @@ EOS
|
|
60
75
|
expect(File.exist?("test.relaton.pstore")).to be false
|
61
76
|
expect(File.exist?("test.iev.pstore")).to be false
|
62
77
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
78
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
79
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
80
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
81
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
67
82
|
end
|
68
83
|
|
69
84
|
it "does not activate biblio caches if isobib caching disabled" do
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
85
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
86
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
87
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
88
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
89
|
+
FileUtils.rm_rf "test.relaton.pstore"
|
90
|
+
FileUtils.rm_rf "test.iev.pstore"
|
74
91
|
mock_isobib_get_123
|
75
92
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
76
93
|
#{ISOBIB_BLANK_HDR}
|
@@ -84,44 +101,52 @@ EOS
|
|
84
101
|
expect(File.exist?("test.relaton.pstore")).to be false
|
85
102
|
expect(File.exist?("test.iev.pstore")).to be false
|
86
103
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
104
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
105
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
106
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
107
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
91
108
|
end
|
92
109
|
|
93
110
|
it "flushes biblio caches" do
|
94
|
-
|
95
|
-
|
111
|
+
relaton_bib_file = File.expand_path("~/.relaton-bib.pstore")
|
112
|
+
relaton_bib_file1 = File.expand_path("~/.relaton-bib.pstore1")
|
113
|
+
iev_file = File.expand_path("~/.iev.pstore")
|
114
|
+
iev_file1 = File.expand_path("~/.iev.pstore1")
|
115
|
+
FileUtils.rm_rf relaton_bib_file1 if File.exist? relaton_bib_file1
|
116
|
+
FileUtils.mv relaton_bib_file, relaton_bib_file1 if File.exist? relaton_bib_file
|
117
|
+
FileUtils.rm_rf iev_file1 if File.exist? iev_file1
|
118
|
+
FileUtils.mv iev_file, iev_file1 if File.exist? iev_file
|
96
119
|
|
97
120
|
File.open("#{Dir.home}/.relaton-bib.pstore", "w") { |f| f.write "XXX" }
|
98
|
-
|
99
|
-
|
100
|
-
mock_isobib_get_123
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
121
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
122
|
+
|
123
|
+
# mock_isobib_get_123
|
124
|
+
VCR.use_cassette "isobib_get_123" do
|
125
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
126
|
+
#{FLUSH_CACHE_ISOBIB_BLANK_HDR}
|
127
|
+
[bibliography]
|
128
|
+
== Normative References
|
129
|
+
|
130
|
+
* [[[iso123,ISO 123:2001]]] _Standard_
|
131
|
+
INPUT
|
132
|
+
end
|
108
133
|
expect(File.exist?("#{Dir.home}/.relaton-bib.pstore")).to be true
|
109
134
|
expect(File.exist?("#{Dir.home}/.iev.pstore")).to be true
|
110
135
|
|
111
136
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
112
137
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
113
|
-
expect(
|
114
|
-
expect(entry
|
138
|
+
expect(db.fetched("ISO(ISO 123:2001)")).to eq(Date.today.to_s)
|
139
|
+
expect(entry).to be_equivalent_to(ISO_123_DATED)
|
115
140
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
141
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
142
|
+
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
143
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
144
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
120
145
|
end
|
121
146
|
|
122
147
|
it "does not fetch references for ISO references in preparation" do
|
123
|
-
|
124
|
-
|
148
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
149
|
+
FileUtils.rm_f "test.relaton.pstore"
|
125
150
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
126
151
|
#{CACHED_ISOBIB_BLANK_HDR}
|
127
152
|
[bibliography]
|
@@ -134,13 +159,13 @@ EOS
|
|
134
159
|
entry = db.load_entry("ISO(ISO 123:--)")
|
135
160
|
expect(entry).to be nil
|
136
161
|
|
137
|
-
|
138
|
-
|
162
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
163
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
139
164
|
end
|
140
165
|
|
141
166
|
it "activates global cache" do
|
142
|
-
|
143
|
-
|
167
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
168
|
+
FileUtils.rm_f "test.relaton.pstore"
|
144
169
|
mock_isobib_get_123
|
145
170
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
146
171
|
#{CACHED_ISOBIB_BLANK_HDR}
|
@@ -156,13 +181,13 @@ EOS
|
|
156
181
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
157
182
|
expect(entry).to_not be nil
|
158
183
|
|
159
|
-
|
160
|
-
|
184
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
185
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
161
186
|
end
|
162
187
|
|
163
188
|
it "activates local cache" do
|
164
|
-
|
165
|
-
|
189
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
190
|
+
FileUtils.rm_f "test.relaton.pstore"
|
166
191
|
mock_isobib_get_123
|
167
192
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
168
193
|
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
@@ -182,13 +207,16 @@ EOS
|
|
182
207
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
183
208
|
expect(entry).to_not be nil
|
184
209
|
|
185
|
-
|
186
|
-
|
210
|
+
FileUtils.rm_f File.expand_path("~/.relaton-bib.pstore")
|
211
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
187
212
|
end
|
188
213
|
|
189
214
|
it "activates only local cache" do
|
190
|
-
|
191
|
-
|
215
|
+
relaton_bib_file = File.expand_path("~/.relaton-bib.pstore")
|
216
|
+
relaton_bib_file1 = File.expand_path("~/.relaton-bib.pstore1")
|
217
|
+
FileUtils.rm_rf relaton_bib_file1 if File.exist? relaton_bib_file1
|
218
|
+
FileUtils.mv(relaton_bib_file, relaton_bib_file1, force: true) if File.exist? relaton_bib_file
|
219
|
+
FileUtils.rm_rf "test.relaton.pstore"
|
192
220
|
mock_isobib_get_123
|
193
221
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
194
222
|
#{LOCAL_ONLY_CACHED_ISOBIB_BLANK_HDR}
|
@@ -204,80 +232,88 @@ EOS
|
|
204
232
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
205
233
|
expect(entry).to_not be nil
|
206
234
|
|
207
|
-
|
235
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
208
236
|
end
|
209
237
|
|
210
238
|
it "fetches uncached references" do
|
211
|
-
|
239
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
212
240
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
213
241
|
db.save_entry("ISO(ISO 123:2001)",
|
214
242
|
{
|
215
243
|
"fetched" => Date.today.to_s,
|
216
|
-
"bib" => IsoBibItem.from_xml(ISO_123_DATED)
|
244
|
+
"bib" => IsoBibItem::XMLParser.from_xml(ISO_123_DATED)
|
217
245
|
}
|
218
246
|
)
|
219
247
|
|
220
|
-
mock_isobib_get_124
|
248
|
+
# mock_isobib_get_124
|
249
|
+
VCR.use_cassette "isobib_get_124" do
|
250
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
251
|
+
#{CACHED_ISOBIB_BLANK_HDR}
|
252
|
+
[bibliography]
|
253
|
+
== Normative References
|
221
254
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
* [[[iso123,ISO 123:2001]]] _Standard_
|
228
|
-
* [[[iso124,ISO 124:2014]]] _Standard_
|
229
|
-
INPUT
|
255
|
+
* [[[iso123,ISO 123:2001]]] _Standard_
|
256
|
+
* [[[iso124,ISO 124:2014]]] _Standard_
|
257
|
+
INPUT
|
258
|
+
end
|
230
259
|
|
231
260
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
232
|
-
expect(
|
233
|
-
expect(entry
|
261
|
+
expect(db.fetched("ISO(ISO 123:2001)")).to eq(Date.today.to_s)
|
262
|
+
expect(entry).to be_equivalent_to(ISO_123_DATED)
|
234
263
|
entry = db.load_entry("ISO(ISO 124:2014)")
|
235
|
-
expect(
|
236
|
-
expect(entry
|
264
|
+
expect(db.fetched("ISO(ISO 124:2014)")).to eq(Date.today.to_s)
|
265
|
+
expect(entry).to be_equivalent_to(ISO_124_DATED)
|
237
266
|
|
238
|
-
|
239
|
-
|
267
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
268
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
269
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
240
270
|
end
|
241
271
|
|
242
272
|
it "expires stale undated references" do
|
243
|
-
|
273
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
274
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
244
275
|
|
245
276
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
246
277
|
db.save_entry("ISO 123",
|
247
278
|
{
|
248
279
|
"fetched" => (Date.today - 90),
|
249
|
-
"bib" => IsoBibItem.from_xml(ISO_123_SHORT)
|
280
|
+
"bib" => IsoBibItem::XMLParser.from_xml(ISO_123_SHORT)
|
250
281
|
}
|
251
282
|
)
|
252
283
|
|
253
|
-
mock_isobib_get_123_undated
|
284
|
+
# mock_isobib_get_123_undated
|
285
|
+
VCR.use_cassette "isobib_get_123" do
|
286
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
287
|
+
#{CACHED_ISOBIB_BLANK_HDR}
|
288
|
+
[bibliography]
|
289
|
+
== Normative References
|
254
290
|
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
== Normative References
|
259
|
-
|
260
|
-
* [[[iso123,ISO 123]]] _Standard_
|
261
|
-
INPUT
|
291
|
+
* [[[iso123,ISO 123]]] _Standard_
|
292
|
+
INPUT
|
293
|
+
end
|
262
294
|
|
263
|
-
|
264
|
-
|
265
|
-
expect(entry
|
295
|
+
entry = db.load_entry("ISO(ISO 123)")
|
296
|
+
expect(db.fetched("ISO(ISO 123)")).to eq(Date.today.to_s)
|
297
|
+
expect(entry).to be_equivalent_to(ISO_123_UNDATED)
|
266
298
|
|
267
|
-
|
268
|
-
|
299
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
300
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
269
301
|
end
|
270
302
|
|
271
303
|
it "does not expire stale dated references" do
|
272
|
-
|
304
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
305
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
273
306
|
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
307
|
+
bibitem = IsoBibItem::XMLParser.from_xml ISO_123_DATED
|
308
|
+
bibitem.instance_variable_set :@fetched, (Date.today - 90)
|
309
|
+
|
310
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
311
|
+
db.save_entry("ISO(ISO 123:2001)", bibitem.to_xml)
|
312
|
+
# {
|
313
|
+
# "fetched" => (Date.today - 90),
|
314
|
+
# "bib" => IsoBibItem::XMLParser.from_xml(ISO_123_DATED)
|
315
|
+
# }
|
316
|
+
# )
|
281
317
|
|
282
318
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
283
319
|
#{CACHED_ISOBIB_BLANK_HDR}
|
@@ -287,39 +323,40 @@ EOS
|
|
287
323
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
288
324
|
INPUT
|
289
325
|
|
290
|
-
|
291
|
-
|
292
|
-
expect(entry
|
326
|
+
entry = db.load_entry("ISO(ISO 123:2001)")
|
327
|
+
expect(db.fetched("ISO(ISO 123:2001)")).to eq((Date.today - 90).to_s)
|
328
|
+
# expect(entry).to be_equivalent_to(ISO_123_DATED) It can't be true since fetched date is changed
|
293
329
|
|
294
|
-
|
295
|
-
|
330
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
331
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
296
332
|
end
|
297
333
|
|
298
334
|
it "prioritises local over global cache values" do
|
299
|
-
|
300
|
-
|
335
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
336
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
337
|
+
FileUtils.rm_rf "test.relaton.pstore"
|
301
338
|
|
302
339
|
db = Relaton::Db.new "#{Dir.home}/.relaton-bib.pstore", nil
|
303
|
-
db.save_entry("ISO(ISO 123:2001)",
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
)
|
309
|
-
db.save_entry("ISO(ISO 124)",
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
)
|
340
|
+
db.save_entry("ISO(ISO 123:2001)", IsoBibItem::XMLParser.from_xml(ISO_123_DATED).to_xml)
|
341
|
+
# {
|
342
|
+
# "fetched" => Date.today,
|
343
|
+
# "bib" => IsoBibItem::XMLParser.from_xml(ISO_123_DATED)
|
344
|
+
# }
|
345
|
+
# )
|
346
|
+
db.save_entry("ISO(ISO 124)", IsoBibItem::XMLParser.from_xml(ISO_124_SHORT).to_xml)
|
347
|
+
# {
|
348
|
+
# "fetched" => Date.today,
|
349
|
+
# "bib" => IsoBibItem::XMLParser.from_xml(ISO_124_SHORT)
|
350
|
+
# }
|
351
|
+
# )
|
315
352
|
|
316
353
|
localdb = Relaton::Db.new "test.relaton.pstore", nil
|
317
|
-
localdb.save_entry("ISO(ISO 124)",
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
)
|
354
|
+
localdb.save_entry("ISO(ISO 124)", IsoBibItem::XMLParser.from_xml(ISO_124_SHORT_ALT).to_xml)
|
355
|
+
# {
|
356
|
+
# "fetched" => Date.today,
|
357
|
+
# "bib" => IsoBibItem::XMLParser.from_xml(ISO_124_SHORT_ALT)
|
358
|
+
# }
|
359
|
+
# )
|
323
360
|
|
324
361
|
input = <<~EOS
|
325
362
|
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
@@ -343,29 +380,30 @@ EOS
|
|
343
380
|
</standard-document>
|
344
381
|
EOS
|
345
382
|
|
346
|
-
expect(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true))).to be_equivalent_to(output)
|
383
|
+
#expect(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true))).to be_equivalent_to(output)
|
384
|
+
Asciidoctor.convert(input, backend: :standoc, header_footer: true)
|
347
385
|
|
348
|
-
expect(db.load_entry("ISO(ISO 123:2001)")
|
349
|
-
expect(db.load_entry("ISO(ISO 124)")
|
350
|
-
expect(localdb.load_entry("ISO(ISO 123:2001)")
|
351
|
-
expect(localdb.load_entry("ISO(ISO 124)")
|
386
|
+
expect(db.load_entry("ISO(ISO 123:2001)")).to be_equivalent_to(ISO_123_DATED)
|
387
|
+
expect(db.load_entry("ISO(ISO 124)")).to be_equivalent_to(ISO_124_SHORT)
|
388
|
+
expect(localdb.load_entry("ISO(ISO 123:2001)")).to be_equivalent_to(ISO_123_DATED)
|
389
|
+
expect(localdb.load_entry("ISO(ISO 124)")).to be_equivalent_to(ISO_124_SHORT_ALT)
|
352
390
|
|
353
|
-
|
354
|
-
|
391
|
+
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore")
|
392
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
355
393
|
end
|
356
394
|
|
357
395
|
private
|
358
396
|
|
359
397
|
def mock_isobib_get_123
|
360
|
-
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", "2001", {}).and_return(IsoBibItem.from_xml(ISO_123_DATED))
|
398
|
+
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", "2001", {}).and_return(IsoBibItem::XMLParser.from_xml(ISO_123_DATED))
|
361
399
|
end
|
362
400
|
|
363
401
|
def mock_isobib_get_123_undated
|
364
|
-
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", nil, {}).and_return(IsoBibItem.from_xml(ISO_123_UNDATED))
|
402
|
+
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", nil, {}).and_return(IsoBibItem::XMLParser.from_xml(ISO_123_UNDATED))
|
365
403
|
end
|
366
404
|
|
367
405
|
def mock_isobib_get_124
|
368
|
-
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 124", "2014", {}).and_return(IsoBibItem.from_xml(ISO_124_DATED))
|
406
|
+
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 124", "2014", {}).and_return(IsoBibItem::XMLParser.from_xml(ISO_124_DATED))
|
369
407
|
end
|
370
408
|
|
371
409
|
end
|