metanorma-iec 1.3.8 → 1.3.12

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -25,218 +25,224 @@ RSpec.configure do |config|
25
25
  end
26
26
  end
27
27
 
28
- def metadata(x)
29
- Hash[x.sort].delete_if{ |k, v| v.nil? || v.respond_to?(:empty?) && v.empty? }
28
+ def metadata(xml)
29
+ xml.sort.to_h.delete_if do |_k, v|
30
+ v.nil? || v.respond_to?(:empty?) && v.empty?
31
+ end
30
32
  end
31
33
 
32
- def strip_guid(x)
33
- x.gsub(%r{ id="_[^"]+"}, ' id="_"').gsub(%r{ target="_[^"]+"}, ' target="_"')
34
+ def strip_guid(xml)
35
+ xml.gsub(%r{ id="_[^"]+"}, ' id="_"').gsub(%r{ target="_[^"]+"},
36
+ ' target="_"')
34
37
  end
35
38
 
36
- def xmlpp(x)
39
+ def xmlpp(xml)
37
40
  s = ""
38
41
  f = REXML::Formatters::Pretty.new(2)
39
42
  f.compact = true
40
- f.write(REXML::Document.new(x),s)
43
+ f.write(REXML::Document.new(xml), s)
41
44
  s
42
45
  end
43
46
 
44
47
  OPTIONS = [backend: :iec, header_footer: true, agree_to_terms: true].freeze
45
48
 
46
- ASCIIDOC_BLANK_HDR = <<~"HDR"
47
- = Document title
48
- Author
49
- :docfile: test.adoc
50
- :nodoc:
51
- :novalid:
52
- :no-isobib:
49
+ ASCIIDOC_BLANK_HDR = <<~"HDR".freeze
50
+ = Document title
51
+ Author
52
+ :docfile: test.adoc
53
+ :nodoc:
54
+ :novalid:
55
+ :no-isobib:
53
56
 
54
57
  HDR
55
58
 
56
- ISOBIB_BLANK_HDR = <<~"HDR"
57
- = Document title
58
- Author
59
- :docfile: test.adoc
60
- :nodoc:
61
- :novalid:
62
- :no-isobib-cache:
59
+ ISOBIB_BLANK_HDR = <<~"HDR".freeze
60
+ = Document title
61
+ Author
62
+ :docfile: test.adoc
63
+ :nodoc:
64
+ :novalid:
65
+ :no-isobib-cache:
63
66
 
64
67
  HDR
65
68
 
66
- FLUSH_CACHE_ISOBIB_BLANK_HDR = <<~"HDR"
67
- = Document title
68
- Author
69
- :docfile: test.adoc
70
- :nodoc:
71
- :novalid:
72
- :flush-caches:
69
+ FLUSH_CACHE_ISOBIB_BLANK_HDR = <<~"HDR".freeze
70
+ = Document title
71
+ Author
72
+ :docfile: test.adoc
73
+ :nodoc:
74
+ :novalid:
75
+ :flush-caches:
73
76
 
74
77
  HDR
75
78
 
76
- CACHED_ISOBIB_BLANK_HDR = <<~"HDR"
77
- = Document title
78
- Author
79
- :docfile: test.adoc
80
- :nodoc:
81
- :novalid:
79
+ CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
80
+ = Document title
81
+ Author
82
+ :docfile: test.adoc
83
+ :nodoc:
84
+ :novalid:
82
85
 
83
86
  HDR
84
87
 
85
- LOCAL_CACHED_ISOBIB_BLANK_HDR = <<~"HDR"
86
- = Document title
87
- Author
88
- :docfile: test.adoc
89
- :nodoc:
90
- :novalid:
91
- :local-cache:
88
+ LOCAL_CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
89
+ = Document title
90
+ Author
91
+ :docfile: test.adoc
92
+ :nodoc:
93
+ :novalid:
94
+ :local-cache:
92
95
 
93
96
  HDR
94
97
 
95
- VALIDATING_BLANK_HDR = <<~"HDR"
96
- = Document title
97
- Author
98
- :docfile: test.adoc
99
- :nodoc:
100
- :no-isobib:
98
+ VALIDATING_BLANK_HDR = <<~"HDR".freeze
99
+ = Document title
100
+ Author
101
+ :docfile: test.adoc
102
+ :nodoc:
103
+ :no-isobib:
101
104
 
102
105
  HDR
103
106
 
104
- TERMS_BOILERPLATE = <<~"BOILERPLATE"
105
- <p id="_">ISO and IEC maintain terminological databases for use in
106
- standardization at the following addresses:</p>
107
-
108
- <ul id="_">
109
- <li> <p id="_">IEC Electropedia: available at
110
- <link target="http://www.electropedia.org"/>
111
- </p> </li>
112
- <li> <p id="_">ISO Online browsing platform: available at
113
- <link target="http://www.iso.org/obp"/></p> </li>
114
- </ul>
107
+ TERMS_BOILERPLATE = <<~"BOILERPLATE".freeze
108
+ <p id="_">ISO and IEC maintain terminological databases for use in
109
+ standardization at the following addresses:</p>
110
+ #{' '}
111
+ <ul id="_">
112
+ <li> <p id="_">IEC Electropedia: available at
113
+ <link target="http://www.electropedia.org"/>
114
+ </p> </li>#{' '}
115
+ <li> <p id="_">ISO Online browsing platform: available at
116
+ <link target="http://www.iso.org/obp"/></p> </li>
117
+ </ul>
115
118
  BOILERPLATE
116
119
 
117
120
  def boilerplate(xmldoc)
118
- file = File.read(File.join(File.dirname(__FILE__), "..", "lib", "asciidoctor", "iec", "iec_intro_en.xml"), encoding: "utf-8")
119
- conv = Asciidoctor::Iec::Converter.new(nil, backend: :iec, header_footer: true)
120
- conv.init(Asciidoctor::Document.new [])
121
+ file = File.read(
122
+ File.join(File.dirname(__FILE__), "..", "lib", "asciidoctor", "iec",
123
+ "iec_intro_en.xml"), encoding: "utf-8"
124
+ )
125
+ conv = Asciidoctor::Iec::Converter.new(nil, backend: :iec,
126
+ header_footer: true)
127
+ conv.init(Asciidoctor::Document.new([]))
121
128
  ret = Nokogiri::XML(
122
- conv.boilerplate_isodoc(xmldoc).populate_template(file, nil).
123
- gsub(/<p>/, "<p id='_'>").
124
- gsub(/<ol>/, "<ol id='_'>"))
129
+ conv.boilerplate_isodoc(xmldoc).populate_template(file, nil)
130
+ .gsub(/<p>/, "<p id='_'>")
131
+ .gsub(/<ol>/, "<ol id='_'>"),
132
+ )
125
133
  conv.smartquotes_cleanup(ret)
126
134
  HTMLEntities.new.decode(ret.to_xml)
127
135
  end
128
136
 
129
- BLANK_HDR = <<~"HDR"
130
- <?xml version="1.0" encoding="UTF-8"?>
131
- <iec-standard xmlns="https://www.metanorma.org/ns/iec" type="semantic" version="#{Metanorma::Iec::VERSION}">
132
- <bibdata type="standard">
133
- <contributor>
134
- <role type="author"/>
135
- <organization>
136
- <name>International Electrotechnical Commission</name>
137
- <abbreviation>IEC</abbreviation>
138
- </organization>
139
- </contributor>
140
- <contributor>
141
- <role type="publisher"/>
142
- <organization>
143
- <name>International Electrotechnical Commission</name>
144
- <abbreviation>IEC</abbreviation>
145
- </organization>
146
- </contributor>
147
- <language>en</language>
148
- <script>Latn</script>
149
- <status>
150
- <stage abbreviation="PPUB">60</stage>
151
- <substage abbreviation="PPUB">60</substage>
152
- </status>
153
- <copyright>
154
- <from>#{Time.new.year}</from>
155
- <owner>
137
+ BLANK_HDR = <<~"HDR".freeze
138
+ <?xml version="1.0" encoding="UTF-8"?>
139
+ <iec-standard xmlns="https://www.metanorma.org/ns/iec" type="semantic" version="#{Metanorma::Iec::VERSION}">
140
+ <bibdata type="standard">
141
+ <contributor>
142
+ <role type="author"/>
143
+ <organization>
144
+ <name>International Electrotechnical Commission</name>
145
+ <abbreviation>IEC</abbreviation>
146
+ </organization>
147
+ </contributor>
148
+ <contributor>
149
+ <role type="publisher"/>
156
150
  <organization>
157
151
  <name>International Electrotechnical Commission</name>
158
152
  <abbreviation>IEC</abbreviation>
159
153
  </organization>
160
- </owner>
161
- </copyright>
162
- <ext>
163
- <doctype>article</doctype>
164
- <horizontal>false</horizontal>
165
- <editorialgroup>
166
- <technical-committee/>
167
- <subcommittee/>
168
- <workgroup/>
169
- </editorialgroup>
170
- <stagename>International standard</stagename>
171
- </ext>
172
- </bibdata>
154
+ </contributor>
155
+ <language>en</language>
156
+ <script>Latn</script>
157
+ <status>
158
+ <stage abbreviation="PPUB">60</stage>
159
+ <substage abbreviation="PPUB">60</substage>
160
+ </status>
161
+ <copyright>
162
+ <from>#{Time.new.year}</from>
163
+ <owner>
164
+ <organization>
165
+ <name>International Electrotechnical Commission</name>
166
+ <abbreviation>IEC</abbreviation>
167
+ </organization>
168
+ </owner>
169
+ </copyright>
170
+ <ext>
171
+ <doctype>article</doctype>
172
+ <horizontal>false</horizontal>
173
+ <editorialgroup>
174
+ <technical-committee/>
175
+ <subcommittee/>
176
+ <workgroup/>
177
+ </editorialgroup>
178
+ <stagename>International standard</stagename>
179
+ </ext>
180
+ </bibdata>
173
181
  HDR
174
182
 
175
183
  def blank_hdr_gen
176
- <<~"HDR"
177
- #{BLANK_HDR}
178
- #{boilerplate(Nokogiri::XML(BLANK_HDR + "</iec-standard>"))}
179
- HDR
184
+ <<~"HDR"
185
+ #{BLANK_HDR}
186
+ #{boilerplate(Nokogiri::XML("#{BLANK_HDR}</iec-standard>"))}
187
+ HDR
180
188
  end
181
189
 
190
+ IEC_TITLE = <<~TITLE.freeze
191
+ <p class="zzSTDTitle1">INTERNATIONAL ELECTROTECHNICAL COMMISSION</p>
192
+ <p class="zzSTDTitle1">____________</p>
193
+ <p class="zzSTDTitle1">&#160;</p>
194
+ <p class="zzSTDTitle1">
195
+ <b/>
196
+ </p>
197
+ <p class="zzSTDTitle1">&#160;</p>
198
+ TITLE
199
+
200
+ IEC_TITLE1 = <<~TITLE.freeze
201
+ <p class="zzSTDTitle1">
202
+ <b/>
203
+ </p>
204
+ <p class="zzSTDTitle1">&#160;</p>
205
+ TITLE
206
+
207
+ HTML_HDR = <<~HDR.freeze
208
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
209
+ <head/>
210
+ <body lang="en">
211
+ <div class="title-section">
212
+ <p>&#160;</p>
213
+ </div>
214
+ <br/>
215
+ <div class="prefatory-section">
216
+ <p>&#160;</p>
217
+ </div>
218
+ <br/>
219
+ <div class="main-section">
220
+ <br/>
221
+ #{IEC_TITLE}
222
+ HDR
182
223
 
183
- IEC_TITLE = <<~END
184
- <p class="zzSTDTitle1">INTERNATIONAL ELECTROTECHNICAL COMMISSION</p>
185
- <p class="zzSTDTitle1">____________</p>
186
- <p class="zzSTDTitle1">&#160;</p>
187
- <p class="zzSTDTitle1">
188
- <b/>
189
- </p>
190
- <p class="zzSTDTitle1">&#160;</p>
191
- END
192
-
193
- IEC_TITLE1 = <<~END
194
- <p class="zzSTDTitle1">
195
- <b/>
196
- </p>
197
- <p class="zzSTDTitle1">&#160;</p>
198
- END
199
-
200
- HTML_HDR = <<~END
201
- <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
202
- <head/>
203
- <body lang="en">
204
- <div class="title-section">
205
- <p>&#160;</p>
206
- </div>
207
- <br/>
208
- <div class="prefatory-section">
209
- <p>&#160;</p>
210
- </div>
211
- <br/>
212
- <div class="main-section">
213
- <br/>
214
- #{IEC_TITLE}
215
- END
216
-
217
- WORD_HDR = <<~END
218
- <html xmlns:epub="http://www.idpf.org/2007/ops">
219
- <head>
220
- <title>test</title>
221
- </head>
222
- <body lang="EN-US" link="blue" vlink="#954F72">
223
- <div class="WordSection1">
224
- <p>&#160;</p>
225
- </div>
226
- <p><br clear="all" class="section"/></p>
227
- <div class="WordSection2">
228
- <p>&#160;</p>
229
- </div>
230
- <p><br clear="all" class="section"/></p>
231
- <div class="WordSection3">
232
- END
233
-
224
+ WORD_HDR = <<~HDR.freeze
225
+ <html xmlns:epub="http://www.idpf.org/2007/ops">
226
+ <head>
227
+ <title>test</title>
228
+ </head>
229
+ <body lang="EN-US" link="blue" vlink="#954F72">
230
+ <div class="WordSection1">
231
+ <p>&#160;</p>
232
+ </div>
233
+ <p><br clear="all" class="section"/></p>
234
+ <div class="WordSection2">
235
+ <p>&#160;</p>
236
+ </div>
237
+ <p><br clear="all" class="section"/></p>
238
+ <div class="WordSection3">
239
+ HDR
234
240
 
235
241
  def stub_fetch_ref(**opts)
236
242
  xml = ""
237
243
 
238
244
  hit = double("hit")
239
- expect(hit).to receive(:"[]").with("title") do
245
+ expect(hit).to receive(:[]).with("title") do
240
246
  Nokogiri::XML(xml).at("//docidentifier").content
241
247
  end.at_least(:once)
242
248
 
@@ -254,8 +260,8 @@ def stub_fetch_ref(**opts)
254
260
  hit_pages = double("hit_pages")
255
261
  expect(hit_pages).to receive(:first).and_return(hit_page).at_least :once
256
262
 
257
- expect(Isobib::IsoBibliography).to receive(:search).
258
- and_wrap_original do |search, *args|
263
+ expect(Isobib::IsoBibliography).to receive(:search)
264
+ .and_wrap_original do |search, *args|
259
265
  code = args[0]
260
266
  expect(code).to be_instance_of String
261
267
  xml = get_xml(search, code, opts)
@@ -264,7 +270,7 @@ def stub_fetch_ref(**opts)
264
270
  end
265
271
 
266
272
  def mock_pdf
267
- allow(::Mn2pdf).to receive(:convert) do |url, output, c, d|
273
+ allow(::Mn2pdf).to receive(:convert) do |url, output, _c, _d|
268
274
  FileUtils.cp(url.gsub(/"/, ""), output.gsub(/"/, ""))
269
275
  end
270
276
  end
@@ -272,7 +278,7 @@ end
272
278
  private
273
279
 
274
280
  def get_xml(search, code, opts)
275
- c = code.gsub(%r{[\/\s:-]}, "_").sub(%r{_+$}, "").downcase
281
+ c = code.gsub(%r{[/\s:-]}, "_").sub(%r{_+$}, "").downcase
276
282
  o = opts.keys.join "_"
277
283
  file = "spec/examples/#{[c, o].join '_'}.xml"
278
284
  if File.exist? file
@@ -287,11 +293,10 @@ def get_xml(search, code, opts)
287
293
  end
288
294
 
289
295
  def mock_open_uri(code)
290
- #expect(OpenURI).to receive(:open_uri).and_wrap_original do |m, *args|
296
+ # expect(OpenURI).to receive(:open_uri).and_wrap_original do |m, *args|
291
297
  expect(Iev).to receive(:get).with(code, "en") do |m, *args|
292
298
  file = "spec/examples/#{code.tr('-', '_')}.html"
293
299
  File.write file, m.call(*args).read unless File.exist? file
294
300
  File.read file
295
301
  end.at_least :once
296
302
  end
297
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.8
4
+ version: 1.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-02 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso