metanorma-iso 1.7.0 → 1.8.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 +11 -41
- data/.gitignore +2 -0
- data/.rubocop.yml +6 -2
- data/lib/asciidoctor/iso/base.rb +12 -12
- data/lib/asciidoctor/iso/biblio.rng +4 -6
- data/lib/asciidoctor/iso/cleanup.rb +1 -1
- data/lib/asciidoctor/iso/front.rb +1 -1
- data/lib/asciidoctor/iso/front_id.rb +30 -25
- data/lib/asciidoctor/iso/isodoc.rng +235 -3
- data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
- data/lib/asciidoctor/iso/isostandard.rng +17 -97
- data/lib/asciidoctor/iso/validate.rb +1 -0
- data/lib/asciidoctor/iso/validate_title.rb +21 -13
- data/lib/isodoc/iso/base_convert.rb +11 -0
- data/lib/isodoc/iso/html/style-human.css +7 -0
- data/lib/isodoc/iso/html/style-iso.css +7 -0
- data/lib/isodoc/iso/html_convert.rb +0 -1
- data/lib/isodoc/iso/i18n-en.yaml +4 -0
- data/lib/isodoc/iso/i18n-fr.yaml +4 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
- data/lib/isodoc/iso/index.rb +140 -0
- data/lib/isodoc/iso/iso.amendment.xsl +1010 -324
- data/lib/isodoc/iso/iso.international-standard.xsl +1010 -324
- data/lib/isodoc/iso/presentation_xml_convert.rb +32 -25
- data/lib/isodoc/iso/word_convert.rb +0 -1
- data/lib/isodoc/iso/xref.rb +13 -5
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +8 -8
- data/spec/asciidoctor/amd_spec.rb +696 -0
- data/spec/asciidoctor/base_spec.rb +704 -0
- data/spec/asciidoctor/blocks_spec.rb +527 -0
- data/spec/asciidoctor/cleanup_spec.rb +1134 -0
- data/spec/asciidoctor/inline_spec.rb +195 -0
- data/spec/asciidoctor/lists_spec.rb +197 -0
- data/spec/asciidoctor/refs_spec.rb +375 -0
- data/spec/asciidoctor/section_spec.rb +393 -0
- data/spec/asciidoctor/table_spec.rb +329 -0
- data/spec/asciidoctor/validate_spec.rb +1572 -0
- data/spec/isodoc/amd_spec.rb +967 -946
- data/spec/isodoc/blocks_spec.rb +530 -507
- data/spec/isodoc/i18n_spec.rb +953 -911
- data/spec/isodoc/inline_spec.rb +355 -293
- data/spec/isodoc/iso_spec.rb +338 -314
- data/spec/isodoc/metadata_spec.rb +392 -382
- data/spec/isodoc/postproc_spec.rb +837 -657
- data/spec/isodoc/ref_spec.rb +374 -331
- data/spec/isodoc/section_spec.rb +821 -519
- data/spec/isodoc/table_spec.rb +472 -411
- data/spec/isodoc/terms_spec.rb +209 -185
- data/spec/isodoc/xref_spec.rb +1370 -1236
- data/spec/metanorma/processor_spec.rb +28 -26
- data/spec/spec_helper.rb +186 -189
- metadata +65 -67
- data/.rubocop.ribose.yml +0 -66
- data/lib/isodoc/iso/html/scripts.html +0 -178
- data/spec/asciidoctor-iso/amd_spec.rb +0 -694
- data/spec/asciidoctor-iso/base_spec.rb +0 -713
- data/spec/asciidoctor-iso/blocks_spec.rb +0 -482
- data/spec/asciidoctor-iso/cleanup_spec.rb +0 -1025
- data/spec/asciidoctor-iso/inline_spec.rb +0 -170
- data/spec/asciidoctor-iso/lists_spec.rb +0 -190
- data/spec/asciidoctor-iso/refs_spec.rb +0 -317
- data/spec/asciidoctor-iso/section_spec.rb +0 -362
- data/spec/asciidoctor-iso/table_spec.rb +0 -313
- data/spec/asciidoctor-iso/validate_spec.rb +0 -1619
- data/spec/assets/xref_error.adoc +0 -7
@@ -2,9 +2,8 @@ require "spec_helper"
|
|
2
2
|
require "metanorma"
|
3
3
|
require "fileutils"
|
4
4
|
|
5
|
-
#RSpec.describe Asciidoctor::Gb do
|
5
|
+
# RSpec.describe Asciidoctor::Gb do
|
6
6
|
RSpec.describe Metanorma::Iso::Processor do
|
7
|
-
|
8
7
|
registry = Metanorma::Registry.instance
|
9
8
|
registry.register(Metanorma::Iso::Processor)
|
10
9
|
processor = registry.find_processor(:iso)
|
@@ -15,7 +14,7 @@ RSpec.describe Metanorma::Iso::Processor do
|
|
15
14
|
|
16
15
|
it "registers output formats against metanorma" do
|
17
16
|
expect(processor.output_formats.sort.to_s).to be_equivalent_to <<~"OUTPUT"
|
18
|
-
|
17
|
+
[[:doc, "doc"], [:html, "html"], [:html_alt, "alt.html"], [:isosts, "iso.sts.xml"], [:pdf, "pdf"], [:presentation, "presentation.xml"], [:rxl, "rxl"], [:sts, "sts.xml"], [:xml, "xml"]]
|
19
18
|
OUTPUT
|
20
19
|
end
|
21
20
|
|
@@ -25,37 +24,40 @@ RSpec.describe Metanorma::Iso::Processor do
|
|
25
24
|
|
26
25
|
it "generates IsoDoc XML from a blank document" do
|
27
26
|
expect(xmlpp(processor.input_to_isodoc(<<~"INPUT", nil))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
28
|
-
|
27
|
+
#{ASCIIDOC_BLANK_HDR}
|
29
28
|
INPUT
|
30
|
-
|
31
|
-
<sections/>
|
32
|
-
</iso-standard>
|
29
|
+
#{BLANK_HDR}
|
30
|
+
<sections/>
|
31
|
+
</iso-standard>
|
33
32
|
OUTPUT
|
34
33
|
end
|
35
34
|
|
36
35
|
it "generates HTML from IsoDoc XML" do
|
37
36
|
FileUtils.rm_f "test.xml"
|
38
37
|
processor.output(<<~"INPUT", "test.xml", "test.html", :html)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
38
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
39
|
+
<sections>
|
40
|
+
<terms id="H" obligation="normative"><title>1  Terms, Definitions, Symbols and Abbreviated Terms</title>
|
41
|
+
<term id="J">
|
42
|
+
<name>1.1</name>
|
43
|
+
<preferred>Term2</preferred>
|
44
|
+
</term>
|
45
|
+
</terms>
|
47
46
|
</sections>
|
48
|
-
|
47
|
+
</iso-standard>
|
49
48
|
INPUT
|
50
|
-
expect(xmlpp(File.read("test.html", encoding: "utf-8")
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
49
|
+
expect(xmlpp(File.read("test.html", encoding: "utf-8")
|
50
|
+
.gsub(%r{^.*<main}m, "<main")
|
51
|
+
.gsub(%r{</main>.*}m, "</main>")))
|
52
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
53
|
+
<main class="main-section">
|
54
|
+
<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
55
|
+
<p class="zzSTDTitle1"></p>
|
56
|
+
<div id="H"><h1 id="toc0">1  Terms, Definitions, Symbols and Abbreviated Terms</h1>
|
57
|
+
<h2 class="TermNum" id="J">1.1</h2>
|
58
|
+
<p class="Terms" style="text-align:left;">Term2</p>
|
59
|
+
</div>
|
60
|
+
</main>
|
61
|
+
OUTPUT
|
59
62
|
end
|
60
|
-
|
61
63
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -23,246 +23,245 @@ RSpec.configure do |config|
|
|
23
23
|
config.expect_with :rspec do |c|
|
24
24
|
c.syntax = :expect
|
25
25
|
end
|
26
|
+
|
27
|
+
=begin
|
28
|
+
config.around do |example|
|
29
|
+
Dir.mktmpdir("rspec-") do |dir|
|
30
|
+
tmp_assets = File.join(dir, "spec/assets/")
|
31
|
+
FileUtils.mkdir_p tmp_assets
|
32
|
+
FileUtils.cp_r Dir.glob("spec/assets/*"), tmp_assets
|
33
|
+
Dir.chdir(dir) { example.run }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
=end
|
26
37
|
end
|
27
38
|
|
28
|
-
def strip_guid(
|
29
|
-
|
39
|
+
def strip_guid(xml)
|
40
|
+
xml.gsub(%r{ id="_[^"]+"}, ' id="_"').gsub(%r{ target="_[^"]+"}, ' target="_"')
|
30
41
|
end
|
31
42
|
|
32
|
-
def metadata(
|
33
|
-
Hash[
|
43
|
+
def metadata(hash)
|
44
|
+
Hash[hash.sort].delete_if { |_, v| v.nil? || v.respond_to?(:empty?) && v.empty? }
|
34
45
|
end
|
35
46
|
|
36
|
-
def xmlpp(
|
47
|
+
def xmlpp(xml)
|
37
48
|
s = ""
|
38
49
|
f = REXML::Formatters::Pretty.new(2)
|
39
50
|
f.compact = true
|
40
|
-
f.write(REXML::Document.new(
|
51
|
+
f.write(REXML::Document.new(xml), s)
|
41
52
|
s
|
42
53
|
end
|
43
54
|
|
44
|
-
ASCIIDOC_BLANK_HDR = <<~"HDR"
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
55
|
+
ASCIIDOC_BLANK_HDR = <<~"HDR".freeze
|
56
|
+
= Document title
|
57
|
+
Author
|
58
|
+
:docfile: test.adoc
|
59
|
+
:nodoc:
|
60
|
+
:novalid:
|
61
|
+
:no-isobib:
|
51
62
|
|
52
63
|
HDR
|
53
64
|
|
54
|
-
AMD_BLANK_HDR = <<~"HDR"
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
65
|
+
AMD_BLANK_HDR = <<~"HDR".freeze
|
66
|
+
= Document title
|
67
|
+
Author
|
68
|
+
:docfile: test.adoc
|
69
|
+
:nodoc:
|
70
|
+
:novalid:
|
71
|
+
:no-isobib:
|
72
|
+
:doctype: amendment
|
62
73
|
|
63
74
|
HDR
|
64
75
|
|
65
|
-
ISOBIB_BLANK_HDR = <<~"HDR"
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
76
|
+
ISOBIB_BLANK_HDR = <<~"HDR".freeze
|
77
|
+
= Document title
|
78
|
+
Author
|
79
|
+
:docfile: test.adoc
|
80
|
+
:nodoc:
|
81
|
+
:novalid:
|
82
|
+
:no-isobib-cache:
|
72
83
|
|
73
84
|
HDR
|
74
85
|
|
75
|
-
FLUSH_CACHE_ISOBIB_BLANK_HDR = <<~"HDR"
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
86
|
+
FLUSH_CACHE_ISOBIB_BLANK_HDR = <<~"HDR".freeze
|
87
|
+
= Document title
|
88
|
+
Author
|
89
|
+
:docfile: test.adoc
|
90
|
+
:nodoc:
|
91
|
+
:novalid:
|
92
|
+
:flush-caches:
|
82
93
|
|
83
94
|
HDR
|
84
95
|
|
85
|
-
CACHED_ISOBIB_BLANK_HDR = <<~"HDR"
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
96
|
+
CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
|
97
|
+
= Document title
|
98
|
+
Author
|
99
|
+
:docfile: test.adoc
|
100
|
+
:nodoc:
|
101
|
+
:novalid:
|
91
102
|
|
92
103
|
HDR
|
93
104
|
|
94
|
-
LOCAL_CACHED_ISOBIB_BLANK_HDR = <<~"HDR"
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
105
|
+
LOCAL_CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
|
106
|
+
= Document title
|
107
|
+
Author
|
108
|
+
:docfile: test.adoc
|
109
|
+
:nodoc:
|
110
|
+
:novalid:
|
111
|
+
:local-cache:
|
101
112
|
|
102
113
|
HDR
|
103
114
|
|
104
|
-
VALIDATING_BLANK_HDR = <<~"HDR"
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
115
|
+
VALIDATING_BLANK_HDR = <<~"HDR".freeze
|
116
|
+
= Document title
|
117
|
+
Author
|
118
|
+
:docfile: test.adoc
|
119
|
+
:nodoc:
|
120
|
+
:no-isobib:
|
111
121
|
HDR
|
112
122
|
|
123
|
+
ASCIIDOCTOR_ISO_DIR = Pathname.new(File.dirname(__FILE__)) / "../lib/asciidoctor/iso"
|
124
|
+
|
113
125
|
BOILERPLATE =
|
114
126
|
HTMLEntities.new.decode(
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
)
|
127
|
+
File.read(ASCIIDOCTOR_ISO_DIR / "boilerplate.xml", encoding: "utf-8")
|
128
|
+
.gsub(/\{\{ agency \}\}/, "ISO").gsub(/\{\{ docyear \}\}/, Date.today.year.to_s)
|
129
|
+
.gsub(/\{% if unpublished %\}.*\{% endif %\}/m, "")
|
130
|
+
.gsub(/(?<=\p{Alnum})'(?=\p{Alpha})/, "’")
|
131
|
+
)
|
120
132
|
|
121
133
|
BOILERPLATE_FR =
|
122
134
|
HTMLEntities.new.decode(
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
)
|
128
|
-
|
129
|
-
BLANK_HDR1 = <<~"HDR"
|
130
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
131
|
-
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
132
|
-
<bibdata type="standard">
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
</bibdata>
|
135
|
+
File.read(ASCIIDOCTOR_ISO_DIR / "boilerplate-fr.xml", encoding: "utf-8")
|
136
|
+
.gsub(/\{\{ agency \}\}/, "ISO").gsub(/\{\{ docyear \}\}/, Date.today.year.to_s)
|
137
|
+
.gsub(/\{% if unpublished %\}.*\{% endif %\}/m, "")
|
138
|
+
.gsub(/(?<=\p{Alnum})'(?=\p{Alpha})/, "’")
|
139
|
+
)
|
140
|
+
|
141
|
+
BLANK_HDR1 = <<~"HDR".freeze
|
142
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
143
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
144
|
+
<bibdata type="standard">
|
145
|
+
<contributor>
|
146
|
+
<role type="author"/>
|
147
|
+
<organization>
|
148
|
+
<name>International Organization for Standardization</name>
|
149
|
+
<abbreviation>ISO</abbreviation>
|
150
|
+
</organization>
|
151
|
+
</contributor>
|
152
|
+
<contributor>
|
153
|
+
<role type="publisher"/>
|
154
|
+
<organization>
|
155
|
+
<name>International Organization for Standardization</name>
|
156
|
+
<abbreviation>ISO</abbreviation>
|
157
|
+
</organization>
|
158
|
+
</contributor>
|
159
|
+
<language>en</language>
|
160
|
+
<script>Latn</script>
|
161
|
+
<status>
|
162
|
+
<stage abbreviation="IS">60</stage>
|
163
|
+
<substage>60</substage>
|
164
|
+
</status>
|
165
|
+
<copyright>
|
166
|
+
<from>#{Time.new.year}</from>
|
167
|
+
<owner>
|
168
|
+
<organization>
|
169
|
+
<name>International Organization for Standardization</name>
|
170
|
+
<abbreviation>ISO</abbreviation>
|
171
|
+
</organization>
|
172
|
+
</owner>
|
173
|
+
</copyright>
|
174
|
+
<ext>
|
175
|
+
<doctype>article</doctype>
|
176
|
+
<editorialgroup>
|
177
|
+
<technical-committee/>
|
178
|
+
<subcommittee/>
|
179
|
+
<workgroup/>
|
180
|
+
</editorialgroup>
|
181
|
+
<stagename>International standard</stagename>
|
182
|
+
</ext>
|
183
|
+
</bibdata>
|
172
184
|
HDR
|
173
185
|
|
174
|
-
BLANK_HDR = <<~"HDR"
|
175
|
-
#{BLANK_HDR1}
|
176
|
-
#{BOILERPLATE}
|
186
|
+
BLANK_HDR = <<~"HDR".freeze
|
187
|
+
#{BLANK_HDR1}
|
188
|
+
#{BOILERPLATE}
|
177
189
|
HDR
|
178
190
|
|
179
|
-
BLANK_HDR_FR = <<~"HDR"
|
180
|
-
#{BLANK_HDR1.sub(%r{<language>en</language>},
|
181
|
-
#{BOILERPLATE_FR}
|
191
|
+
BLANK_HDR_FR = <<~"HDR".freeze
|
192
|
+
#{BLANK_HDR1.sub(%r{<language>en</language>}, '<language>fr</language>')}
|
193
|
+
#{BOILERPLATE_FR}
|
182
194
|
HDR
|
183
195
|
|
184
|
-
TERM_BOILERPLATE = <<~
|
196
|
+
TERM_BOILERPLATE = <<~TERM.freeze
|
185
197
|
<p id="_">For the purposes of this document,
|
186
198
|
the following terms and definitions apply.</p>
|
187
|
-
<p id="_">ISO and IEC maintain terminological databases for use in
|
188
|
-
standardization at the following addresses:</p>
|
189
|
-
|
190
|
-
<ul id="_">
|
191
|
-
<li>
|
192
|
-
|
193
|
-
<
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
</head>
|
218
|
-
<body lang="EN-US" link="blue" vlink="#954F72">
|
219
|
-
<div class="WordSection1">
|
220
|
-
<p> </p>
|
221
|
-
</div>
|
222
|
-
<p><br clear="all" class="section"/></p>
|
223
|
-
<div class="WordSection2">
|
224
|
-
<p> </p>
|
225
|
-
</div>
|
226
|
-
<p><br clear="all" class="section"/></p>
|
227
|
-
<div class="WordSection3">
|
228
|
-
END
|
229
|
-
|
230
|
-
|
231
|
-
def stub_fetch_ref(**opts)
|
232
|
-
xml = ""
|
233
|
-
|
234
|
-
hit = double("hit")
|
235
|
-
expect(hit).to receive(:"[]").with("title") do
|
236
|
-
Nokogiri::XML(xml).at("//docidentifier").content
|
237
|
-
end.at_least(:once)
|
238
|
-
|
239
|
-
hit_instance = double("hit_instance")
|
240
|
-
expect(hit_instance).to receive(:hit).and_return(hit).at_least(:once)
|
241
|
-
expect(hit_instance).to receive(:to_xml) do |builder, opt|
|
242
|
-
expect(builder).to be_instance_of Nokogiri::XML::Builder
|
243
|
-
expect(opt).to eq opts
|
244
|
-
builder << xml
|
245
|
-
end.at_least :once
|
199
|
+
<p id="_">ISO and IEC maintain terminological databases for use in
|
200
|
+
standardization at the following addresses:</p>
|
201
|
+
|
202
|
+
<ul id="_">
|
203
|
+
<li>
|
204
|
+
<p id="_">ISO Online browsing platform: available at
|
205
|
+
<link target="http://www.iso.org/obp"/></p>
|
206
|
+
</li>
|
207
|
+
<li>
|
208
|
+
<p id="_">IEC Electropedia: available at
|
209
|
+
<link target="http://www.electropedia.org"/>
|
210
|
+
</p>
|
211
|
+
</li>
|
212
|
+
</ul>
|
213
|
+
TERM
|
214
|
+
|
215
|
+
HTML_HDR = <<~HDR.freeze
|
216
|
+
<html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
|
217
|
+
<head/>
|
218
|
+
<body lang="en">
|
219
|
+
<div class="title-section">
|
220
|
+
<p> </p>
|
221
|
+
</div>
|
222
|
+
<br/>
|
223
|
+
<div class="prefatory-section">
|
224
|
+
<p> </p>
|
225
|
+
</div>
|
226
|
+
<br/>
|
227
|
+
<div class="main-section">
|
228
|
+
HDR
|
246
229
|
|
247
|
-
|
248
|
-
|
230
|
+
WORD_HDR = <<~HDR.freeze
|
231
|
+
<html xmlns:epub="http://www.idpf.org/2007/ops">
|
232
|
+
<head>
|
233
|
+
<title>test</title>
|
234
|
+
</head>
|
235
|
+
<body lang="EN-US" link="blue" vlink="#954F72">
|
236
|
+
<div class="WordSection1">
|
237
|
+
<p> </p>
|
238
|
+
</div>
|
239
|
+
<p><br clear="all" class="section"/></p>
|
240
|
+
<div class="WordSection2">
|
241
|
+
<p> </p>
|
242
|
+
</div>
|
243
|
+
<p><br clear="all" class="section"/></p>
|
244
|
+
<div class="WordSection3">
|
245
|
+
HDR
|
249
246
|
|
250
|
-
|
251
|
-
expect(hit_pages).to receive(:first).and_return(hit_page).at_least :once
|
247
|
+
OPTIONS = [backend: :iso, header_footer: true].freeze
|
252
248
|
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
249
|
+
def mock_pdf
|
250
|
+
allow(::Mn2pdf).to receive(:convert) do |url, output,|
|
251
|
+
FileUtils.cp(url.gsub(/"/, ""), output.gsub(/"/, ""))
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
def mock_sts
|
256
|
+
allow(::Mn2sts).to receive(:convert) do |url, output,|
|
257
|
+
FileUtils.cp(url.gsub(/"/, ""), output.gsub(/"/, ""))
|
258
|
+
end
|
260
259
|
end
|
261
260
|
|
262
261
|
private
|
263
262
|
|
264
263
|
def get_xml(search, code, opts)
|
265
|
-
c = code.gsub(%r{[
|
264
|
+
c = code.gsub(%r{[/\s:-]}, "_").sub(%r{_+$}, "").downcase
|
266
265
|
o = opts.keys.join "_"
|
267
266
|
file = "spec/examples/#{[c, o].join '_'}.xml"
|
268
267
|
if File.exist? file
|
@@ -277,11 +276,9 @@ def get_xml(search, code, opts)
|
|
277
276
|
end
|
278
277
|
|
279
278
|
def mock_open_uri(code)
|
280
|
-
#expect(OpenURI).to receive(:open_uri).and_wrap_original do |m, *args|
|
281
279
|
expect(Iev).to receive(:get).with(code, "en") do |m, *args|
|
282
280
|
file = "spec/examples/#{code.tr('-', '_')}.html"
|
283
281
|
File.write file, m.call(*args).read unless File.exist? file
|
284
282
|
File.read file
|
285
283
|
end.at_least :once
|
286
284
|
end
|
287
|
-
|