metanorma-iec 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -114,8 +114,8 @@ RSpec.describe IsoDoc do
114
114
 
115
115
  INPUT
116
116
  word = File.read("test.doc", encoding: "UTF-8").sub(/^.*<div class="WordSection3">/m, '<div class="WordSection3">').
117
- sub(%r{<div style="mso-element:footnote-list"/>.*$}m, "")
118
- expect(word).to be_equivalent_to <<~"OUTPUT"
117
+ sub(%r{<br.*$}m, "")
118
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
119
119
  <div class="WordSection3">
120
120
  #{IEC_TITLE}
121
121
  <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1>
@@ -123,8 +123,6 @@ RSpec.describe IsoDoc do
123
123
  <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
124
124
  <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, 3.1</a>, modified &#x2014; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
125
125
  </div>
126
- <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
127
- <div class="colophon"></div>
128
126
  OUTPUT
129
127
  end
130
128
 
@@ -169,7 +167,8 @@ RSpec.describe IsoDoc do
169
167
  INPUT
170
168
  word = File.read("test.doc", encoding: "UTF-8").sub(/^.*An empty word intro page\./m, '').
171
169
  sub(%r{<p class="zzSTDTitle1">.*$}m, "")
172
- expect(word.gsub(/_Toc\d\d+/, "_Toc")).to be_equivalent_to <<~'OUTPUT'
170
+ expect(xmlpp("<div>" + word.gsub(/_Toc\d\d+/, "_Toc") + "</div>")).to be_equivalent_to xmlpp(<<~'OUTPUT')
171
+ <div>
173
172
  <p class="MsoToc1"><span lang="EN-GB" xml:lang="EN-GB"><span style="mso-element:field-begin"></span><span style="mso-spacerun:yes">&#xA0;</span>TOC
174
173
  \o "1-2" \h \z \u <span style="mso-element:field-separator"></span></span>
175
174
  <span class="MsoHyperlink"><span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
@@ -234,6 +233,7 @@ RSpec.describe IsoDoc do
234
233
  <p class="MsoNormal">
235
234
  <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
236
235
  </p>
236
+ </div>
237
237
  OUTPUT
238
238
  end
239
239
 
@@ -259,10 +259,10 @@ RSpec.describe IsoDoc do
259
259
  </sections>
260
260
  </iso-standard>
261
261
  INPUT
262
- html = File.read("test.html", encoding: "UTF-8").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
262
+ html = File.read("test.html", encoding: "UTF-8").sub(/^.*<main class="main-section">/m, '<main xmlns:epub="epub" class="main-section">').
263
263
  sub(%r{</main>.*$}m, "</main>")
264
- expect(html).to be_equivalent_to <<~"OUTPUT"
265
- <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
264
+ expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
265
+ <main xmlns:epub="epub" class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
266
266
  <br/>
267
267
  #{IEC_TITLE}
268
268
  <div id="">
@@ -316,7 +316,7 @@ RSpec.describe IsoDoc do
316
316
  html = File.read("test.html", encoding: "UTF-8").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
317
317
  sub(%r{</main>.*$}m, "</main>")
318
318
  expect(`ls test_htmlimages`).to match(/\.png$/)
319
- expect(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png")).to be_equivalent_to <<~"OUTPUT"
319
+ expect(xmlpp(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
320
320
  <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
321
321
  <br />
322
322
  #{IEC_TITLE}
@@ -410,8 +410,8 @@ RSpec.describe IsoDoc do
410
410
  </iso-standard>
411
411
  INPUT
412
412
  word = File.read("test.doc", encoding: "UTF-8").sub(/^.*<div class="WordSection3">/m, '<div class="WordSection3">').
413
- sub(%r{<div style="mso-element:footnote-list"/>.*$}m, "")
414
- expect(word).to be_equivalent_to <<~"OUTPUT"
413
+ sub(%r{<br[^>]*>\s*<div class="colophon">.*$}m, "")
414
+ expect((word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
415
415
  <div class="WordSection3">
416
416
  #{IEC_TITLE}
417
417
  <p class="MsoNormal">
@@ -426,9 +426,6 @@ RSpec.describe IsoDoc do
426
426
  </div>
427
427
  </div>
428
428
  </div>
429
- <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
430
- <div class="colophon"></div>
431
-
432
429
  OUTPUT
433
430
  end
434
431
 
@@ -450,8 +447,8 @@ RSpec.describe IsoDoc do
450
447
  </iso-standard>
451
448
  INPUT
452
449
  word = File.read("test.doc", encoding: "UTF-8").sub(/^.*<div class="WordSection3">/m, '<div class="WordSection3">').
453
- sub(%r{<div style="mso-element:footnote-list"/>.*$}m, "")
454
- expect(word).to be_equivalent_to <<~"OUTPUT"
450
+ sub(%r{<br[^>]*>\s*<div class="colophon">.*$}m, "")
451
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
455
452
  <div class="WordSection3">
456
453
  #{IEC_TITLE.gsub(/\&#160;/, "&#xA0;")}
457
454
  <p class="MsoNormal">
@@ -473,9 +470,6 @@ RSpec.describe IsoDoc do
473
470
  </div>
474
471
  </div>
475
472
  </div>
476
- <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
477
- <div class="colophon"></div>
478
-
479
473
  OUTPUT
480
474
  end
481
475
 
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe IsoDoc do
4
4
  it "processes section names" do
5
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
5
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <preface>
8
8
  <foreword obligation="informative">
@@ -159,7 +159,7 @@ OUTPUT
159
159
  end
160
160
 
161
161
  it "processes section names (Word)" do
162
- expect(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ")).to be_equivalent_to <<~"OUTPUT"
162
+ expect(xmlpp(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
163
163
  <iso-standard xmlns="http://riboseinc.com/isoxml">
164
164
  <preface>
165
165
  <foreword obligation="informative">
@@ -308,12 +308,11 @@ OUTPUT
308
308
  <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
309
309
  <div class="colophon"/>
310
310
  </body>
311
- </html>
312
311
  OUTPUT
313
312
  end
314
313
 
315
314
  it "processes simple terms & definitions" do
316
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
315
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
317
316
  <iso-standard xmlns="http://riboseinc.com/isoxml">
318
317
  <sections>
319
318
  <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
@@ -341,7 +340,7 @@ OUTPUT
341
340
  end
342
341
 
343
342
  it "processes inline section headers" do
344
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
343
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
345
344
  <iso-standard xmlns="http://riboseinc.com/isoxml">
346
345
  <sections>
347
346
  <clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
@@ -376,7 +375,7 @@ OUTPUT
376
375
  end
377
376
 
378
377
  it "adds colophon to published standard (Word)" do
379
- expect(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ")).to be_equivalent_to <<~"OUTPUT"
378
+ expect(xmlpp(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
380
379
  <iso-standard xmlns="http://riboseinc.com/isoxml">
381
380
  <bibdata>
382
381
  <status>
@@ -406,12 +405,11 @@ OUTPUT
406
405
  <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
407
406
  <div class="colophon"/>
408
407
  </body>
409
- </html>
410
408
  OUTPUT
411
409
  end
412
410
 
413
411
  it "does not add colophon to draft standard (Word)" do
414
- expect(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ")).to be_equivalent_to <<~"OUTPUT"
412
+ expect(xmlpp(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
415
413
  <iso-standard xmlns="http://riboseinc.com/isoxml">
416
414
  <bibdata>
417
415
  <status>
@@ -439,12 +437,11 @@ OUTPUT
439
437
  #{IEC_TITLE}
440
438
  </div>
441
439
  </body>
442
- </html>
443
440
  OUTPUT
444
441
  end
445
442
 
446
443
  it "adds boilerplate to foreword" do
447
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
444
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
448
445
  <iso-standard xmlns="http://riboseinc.com/isoxml">
449
446
  <bibdata>
450
447
  <ext><doctype>International Standard</doctype></ext>
@@ -472,7 +469,7 @@ OUTPUT
472
469
  end
473
470
 
474
471
  it "does not add boilerplate to foreword in amendments" do
475
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
472
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
476
473
  <iso-standard xmlns="http://riboseinc.com/isoxml">
477
474
  <bibdata>
478
475
  <ext><doctype>Amendment</doctype></ext>
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe IsoDoc do
4
4
  it "processes IsoXML terms" do
5
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
5
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <sections>
8
8
  <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
@@ -95,7 +95,7 @@ OUTPUT
95
95
  end
96
96
 
97
97
  it "processes IsoXML terms (Word)" do
98
- expect(IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(%r{^.*<div id="_terms_and_definitions">}m, '<div id="_terms_and_definitions">')).to be_equivalent_to <<~"OUTPUT"
98
+ expect((IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(%r{^.*<div id="_terms_and_definitions">}m, '<div id="_terms_and_definitions">').sub(%r{<br[^>]*>\s*<div class="colophon"/>.*$}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
99
99
  <iso-standard xmlns="http://riboseinc.com/isoxml">
100
100
  <sections>
101
101
  <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
@@ -175,11 +175,6 @@ OUTPUT
175
175
  <p>[TERMREF]
176
176
  <a href="#ISO7301">ISO 7301:2011, 3.1</a>
177
177
  [/TERMREF]</p></div>
178
- </div>
179
- <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
180
- <div class="colophon"/>
181
- </body>
182
- </html>
183
178
 
184
179
  OUTPUT
185
180
  end
@@ -24,7 +24,7 @@ RSpec.describe Metanorma::Iec::Processor do
24
24
  end
25
25
 
26
26
  it "generates IsoDoc XML from a blank document" do
27
- expect(strip_guid(processor.input_to_isodoc(<<~"INPUT", nil))).to be_equivalent_to <<~"OUTPUT"
27
+ expect(xmlpp(strip_guid(processor.input_to_isodoc(<<~"INPUT", nil)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
28
28
  #{ASCIIDOC_BLANK_HDR}
29
29
  INPUT
30
30
  #{BLANK_HDR}
@@ -46,7 +46,7 @@ RSpec.describe Metanorma::Iec::Processor do
46
46
  </sections>
47
47
  </iso-standard>
48
48
  INPUT
49
- expect(File.read("test.html", encoding: "utf-8").gsub(%r{^.*<main}m, "<main").gsub(%r{</main>.*}m, "</main>")).to be_equivalent_to <<~"OUTPUT"
49
+ expect(xmlpp(File.read("test.html", encoding: "utf-8").gsub(%r{^.*<main}m, "<main").gsub(%r{</main>.*}m, "</main>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
50
50
  <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
51
51
  <br />
52
52
  <p class="zzSTDTitle1">INTERNATIONAL ELECTROTECHNICAL COMMISSION</p>
data/spec/spec_helper.rb CHANGED
@@ -11,6 +11,7 @@ require "equivalent-xml"
11
11
  require "metanorma"
12
12
  require "metanorma/iec"
13
13
  require "iev"
14
+ require "rexml/document"
14
15
 
15
16
  RSpec.configure do |config|
16
17
  # Enable flags like --only-failures and --next-failure
@@ -28,6 +29,14 @@ def strip_guid(x)
28
29
  x.gsub(%r{ id="_[^"]+"}, ' id="_"').gsub(%r{ target="_[^"]+"}, ' target="_"')
29
30
  end
30
31
 
32
+ def xmlpp(x)
33
+ s = ""
34
+ f = REXML::Formatters::Pretty.new(2)
35
+ f.compact = true
36
+ f.write(REXML::Document.new(x),s)
37
+ s
38
+ end
39
+
31
40
  ASCIIDOC_BLANK_HDR = <<~"HDR"
32
41
  = Document title
33
42
  Author
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-27 00:00:00.000000000 Z
11
+ date: 2019-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: asciidoctor
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 1.5.7
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 1.5.7
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: ruby-jing
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -293,7 +279,6 @@ files:
293
279
  - spec/asciidoctor-iec/cleanup_spec.rb
294
280
  - spec/asciidoctor-iec/inline_spec.rb
295
281
  - spec/asciidoctor-iec/lists_spec.rb
296
- - spec/asciidoctor-iec/macros_spec.rb
297
282
  - spec/asciidoctor-iec/section_spec.rb
298
283
  - spec/asciidoctor-iec/table_spec.rb
299
284
  - spec/asciidoctor-iec/validate_spec.rb
@@ -1,21 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Asciidoctor::Iec do
4
- it "processes the Asciidoctor::ISO inline macros" do
5
- expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
6
- #{ASCIIDOC_BLANK_HDR}
7
- alt:[term1]
8
- deprecated:[term1]
9
- domain:[term1]
10
- INPUT
11
- #{BLANK_HDR}
12
- <sections>
13
- <admitted>term1</admitted>
14
- <deprecates>term1</deprecates>
15
- <domain>term1</domain>
16
- </sections>
17
- </iso-standard>
18
- OUTPUT
19
- end
20
-
21
- end