reverse_adoc 0.3.6 → 1.0.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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +4 -3
  3. data/Gemfile +1 -1
  4. data/Rakefile +7 -7
  5. data/exe/reverse_adoc +11 -11
  6. data/exe/w2a +15 -16
  7. data/lib/reverse_adoc/cleaner.rb +17 -18
  8. data/lib/reverse_adoc/config.rb +7 -7
  9. data/lib/reverse_adoc/converters/a.rb +24 -24
  10. data/lib/reverse_adoc/converters/aside.rb +6 -4
  11. data/lib/reverse_adoc/converters/audio.rb +16 -21
  12. data/lib/reverse_adoc/converters/base.rb +79 -5
  13. data/lib/reverse_adoc/converters/blockquote.rb +16 -7
  14. data/lib/reverse_adoc/converters/br.rb +5 -1
  15. data/lib/reverse_adoc/converters/bypass.rb +38 -34
  16. data/lib/reverse_adoc/converters/code.rb +42 -1
  17. data/lib/reverse_adoc/converters/div.rb +7 -3
  18. data/lib/reverse_adoc/converters/drop.rb +6 -2
  19. data/lib/reverse_adoc/converters/em.rb +44 -7
  20. data/lib/reverse_adoc/converters/figure.rb +10 -6
  21. data/lib/reverse_adoc/converters/h.rb +19 -11
  22. data/lib/reverse_adoc/converters/head.rb +7 -2
  23. data/lib/reverse_adoc/converters/hr.rb +5 -1
  24. data/lib/reverse_adoc/converters/ignore.rb +6 -2
  25. data/lib/reverse_adoc/converters/img.rb +29 -19
  26. data/lib/reverse_adoc/converters/li.rb +6 -13
  27. data/lib/reverse_adoc/converters/mark.rb +11 -2
  28. data/lib/reverse_adoc/converters/math.rb +13 -2
  29. data/lib/reverse_adoc/converters/ol.rb +44 -26
  30. data/lib/reverse_adoc/converters/p.rb +13 -7
  31. data/lib/reverse_adoc/converters/pass_through.rb +5 -1
  32. data/lib/reverse_adoc/converters/pre.rb +23 -10
  33. data/lib/reverse_adoc/converters/q.rb +6 -2
  34. data/lib/reverse_adoc/converters/strong.rb +41 -6
  35. data/lib/reverse_adoc/converters/sub.rb +6 -2
  36. data/lib/reverse_adoc/converters/sup.rb +6 -2
  37. data/lib/reverse_adoc/converters/table.rb +28 -23
  38. data/lib/reverse_adoc/converters/td.rb +32 -16
  39. data/lib/reverse_adoc/converters/text.rb +19 -19
  40. data/lib/reverse_adoc/converters/th.rb +4 -6
  41. data/lib/reverse_adoc/converters/tr.rb +7 -7
  42. data/lib/reverse_adoc/converters/video.rb +16 -23
  43. data/lib/reverse_adoc/converters.rb +2 -3
  44. data/lib/reverse_adoc/html_converter.rb +48 -43
  45. data/lib/reverse_adoc/version.rb +1 -1
  46. data/lib/reverse_adoc.rb +9 -9
  47. data/reverse_adoc.gemspec +6 -3
  48. data/spec/assets/basic.html +3 -0
  49. data/spec/bin/reverse_adoc_spec.rb +9 -8
  50. data/spec/bin/w2a_spec.rb +12 -12
  51. data/spec/components/anchors_spec.rb +18 -12
  52. data/spec/components/basic_spec.rb +28 -14
  53. data/spec/components/code_spec.rb +2 -4
  54. data/spec/components/escapables_spec.rb +4 -6
  55. data/spec/components/from_the_wild_spec.rb +2 -4
  56. data/spec/components/html_fragment_spec.rb +2 -3
  57. data/spec/components/lists_spec.rb +12 -8
  58. data/spec/components/paragraphs_spec.rb +2 -3
  59. data/spec/components/quotation_spec.rb +5 -5
  60. data/spec/components/tables_spec.rb +22 -11
  61. data/spec/components/unknown_tags_spec.rb +13 -10
  62. data/spec/lib/reverse_adoc/cleaner_spec.rb +70 -71
  63. data/spec/lib/reverse_adoc/config_spec.rb +5 -6
  64. data/spec/lib/reverse_adoc/converters/aside_spec.rb +2 -3
  65. data/spec/lib/reverse_adoc/converters/audio_spec.rb +3 -5
  66. data/spec/lib/reverse_adoc/converters/blockquote_spec.rb +5 -6
  67. data/spec/lib/reverse_adoc/converters/br_spec.rb +2 -2
  68. data/spec/lib/reverse_adoc/converters/code_spec.rb +3 -5
  69. data/spec/lib/reverse_adoc/converters/div_spec.rb +3 -5
  70. data/spec/lib/reverse_adoc/converters/figure_spec.rb +2 -4
  71. data/spec/lib/reverse_adoc/converters/img_spec.rb +5 -7
  72. data/spec/lib/reverse_adoc/converters/li_spec.rb +2 -4
  73. data/spec/lib/reverse_adoc/converters/mark_spec.rb +4 -4
  74. data/spec/lib/reverse_adoc/converters/p_spec.rb +2 -3
  75. data/spec/lib/reverse_adoc/converters/pre_spec.rb +8 -9
  76. data/spec/lib/reverse_adoc/converters/q_spec.rb +3 -3
  77. data/spec/lib/reverse_adoc/converters/strong_spec.rb +9 -8
  78. data/spec/lib/reverse_adoc/converters/text_spec.rb +21 -16
  79. data/spec/lib/reverse_adoc/converters/video_spec.rb +7 -9
  80. data/spec/lib/reverse_adoc/converters_spec.rb +9 -6
  81. data/spec/lib/reverse_adoc.rb +25 -25
  82. data/spec/spec_helper.rb +11 -11
  83. data/spec/support/shell_helpers.rb +1 -1
  84. metadata +20 -6
data/lib/reverse_adoc.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
4
- require 'nokogiri'
5
- require 'reverse_adoc/version'
6
- require 'reverse_adoc/errors'
7
- require 'reverse_adoc/cleaner'
8
- require 'reverse_adoc/config'
9
- require 'reverse_adoc/converters'
10
- require 'reverse_adoc/converters/base'
11
- require "reverse_adoc/html_converter"
3
+ require "digest"
4
+ require "nokogiri"
5
+ require_relative "reverse_adoc/version"
6
+ require_relative "reverse_adoc/errors"
7
+ require_relative "reverse_adoc/cleaner"
8
+ require_relative "reverse_adoc/config"
9
+ require_relative "reverse_adoc/converters"
10
+ require_relative "reverse_adoc/converters/base"
11
+ require_relative "reverse_adoc/html_converter"
12
12
 
13
13
  module ReverseAdoc
14
14
  def self.convert(input, options = {})
data/reverse_adoc.gemspec CHANGED
@@ -16,15 +16,18 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- exe/*`.split("\n").map { |f| File.basename(f) }
19
+ s.executables = `git ls-files -- exe/*`.split("\n").map do |f|
20
+ File.basename(f)
21
+ end
20
22
  s.bindir = "exe"
21
23
  s.require_paths = ["lib"]
22
- s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
24
+ s.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
23
25
 
24
26
  # specify any dependencies here; for example:
27
+ s.add_dependency "coradoc", "~> 0.2"
25
28
  s.add_dependency "marcel", "~> 1.0.0"
26
29
  s.add_dependency "mathml2asciimath"
27
- s.add_dependency "nokogiri", "~> 1.12"
30
+ s.add_dependency "nokogiri", "~> 1.13"
28
31
  s.add_development_dependency "codeclimate-test-reporter"
29
32
  s.add_development_dependency "rake"
30
33
  s.add_development_dependency "redcarpet"
@@ -37,6 +37,9 @@
37
37
  strong with extra leading and trailing
38
38
  </strong>whitespace
39
39
 
40
+ constrai<strong>ned</strong> strong
41
+ constrai<i>ned</i> italic
42
+
40
43
  <b>b tag content</b>
41
44
  <i>i tag content</i>
42
45
 
@@ -1,31 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
- describe 'exe/revrse_adoc' do
5
+ describe "exe/reverse_adoc" do
6
6
  subject(:convert) do
7
7
  ShellUtils.execute!("./exe/reverse_adoc -e -o test1 #{input_file_path}")
8
8
  end
9
+
9
10
  unless Gem.win_platform?
10
- context 'when external images present' do
11
- let(:input_file_path) { 'spec/assets/external_images.html' }
12
- let(:images_folder) { 'images' }
11
+ context "when external images present" do
12
+ let(:input_file_path) { "spec/assets/external_images.html" }
13
+ let(:images_folder) { "images" }
13
14
 
14
15
  after do
15
16
  FileUtils.rm_rf(images_folder) if File.directory?(images_folder)
16
17
  end
17
18
 
18
- it 'Does not raise error' do
19
+ it "Does not raise error" do
19
20
  expect { convert }.to_not raise_error
20
21
  end
21
22
 
22
- it 'exatracts images from source html' do
23
+ it "exatracts images from source html" do
23
24
  expect { convert }
24
25
  .to(change do
25
26
  Dir["#{images_folder}/*gif"]
26
27
  .map { |entry| File.basename(entry) }
27
28
  .sort
28
- end.from([]).to(['001.gif']))
29
+ end.from([]).to(["001.gif"]))
29
30
  end
30
31
  end
31
32
  end
data/spec/bin/w2a_spec.rb CHANGED
@@ -1,34 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
- describe 'exe/w2a' do
5
+ describe "exe/w2a" do
6
6
  subject(:convert) do
7
7
  ShellUtils.execute!("./exe/w2a -e -o test1 #{input_file_path}")
8
8
  end
9
+
9
10
  # TODO: fix github actions integration with libreoffice, currently it hangs
10
11
  # when trying to use soffice binary
11
12
  unless Gem.win_platform? ||
12
- (Gem::Platform.local.os == 'darwin' && !ENV['GITHUB_ACTION'].nil?)
13
- context 'when external images present' do
14
- let(:input_file_path) { 'spec/assets/external_images.docx' }
15
- let(:images_folder) { 'images' }
13
+ (Gem::Platform.local.os == "darwin" && !ENV["GITHUB_ACTION"].nil?)
14
+ context "when external images present" do
15
+ let(:input_file_path) { "spec/assets/external_images.docx" }
16
+ let(:images_folder) { "images" }
16
17
 
17
18
  after do
18
19
  FileUtils.rm_rf(images_folder) if File.directory?(images_folder)
19
20
  end
20
21
 
21
- it 'Does not raise error' do
22
+ it "Does not raise error" do
22
23
  expect { convert }.to_not raise_error
23
24
  end
24
25
 
25
- it 'extracts images from source html' do
26
+ it "extracts images from source html" do
26
27
  expect { convert }
27
28
  .to(change do
28
- Dir["#{images_folder}/*gif"]
29
- .map { |entry| File.basename(entry) }
30
- .size > 0
31
- end.from(false).to(true))
29
+ !Dir["#{images_folder}/*gif"]
30
+ .map { |entry| File.basename(entry) }.empty?
31
+ end.from(false).to(true))
32
32
  end
33
33
  end
34
34
  end
@@ -1,26 +1,32 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/anchors.html') }
4
+ let(:input) { File.read("spec/assets/anchors.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
9
- it { is_expected.to include 'http://foobar.com[Foobar]' }
10
- it { is_expected.to include 'http://foobar.com[Fubar]' }
8
+ it { is_expected.to include "http://foobar.com[Foobar]" }
9
+ it { is_expected.to include "http://foobar.com[Fubar]" }
11
10
  it { is_expected.to include 'http://foobar.com[f\*\*\*\*\* up beyond all redemption]' }
12
- it { is_expected.to include 'http://strong.foobar.com[*Strong foobar*]' }
11
+ it { is_expected.to include "http://strong.foobar.com[*Strong foobar*]" }
13
12
 
14
- it { is_expected.to include 'There should be space before but not after the anchor ( http://foobar.com[stripped]).' }
13
+ it {
14
+ is_expected.to include "There should be space before but not after the anchor ( http://foobar.com[stripped])."
15
+ }
15
16
 
16
- it { is_expected.to include ' do not ignore link:foo.html[] anchor tags with no link text ' }
17
- it { is_expected.to include ' link <<content,internal jumplinks>> with anchors ' }
18
- it { is_expected.to include ' link <<content2>>internal jumplinks without anchors ' }
19
- it { is_expected.to include ' treat [[content]] as bookmarks ' }
17
+ it {
18
+ is_expected.to include " do not ignore link:foo.html[] anchor tags with no link text "
19
+ }
20
+ it {
21
+ is_expected.to include " link <<content,internal jumplinks>> with anchors "
22
+ }
23
+ it {
24
+ is_expected.to include " link <<content2>>internal jumplinks without anchors "
25
+ }
26
+ it { is_expected.to include " treat [[content]] as bookmarks " }
20
27
 
21
28
  it { is_expected.to include "<<a_bspaced,Double \\_\\_ anchor with space>>" }
22
29
  it { is_expected.to include "[[a_bspaced]]" }
23
30
  it { is_expected.to include "[[a_Foreword]]\n== Text" }
24
31
  it { is_expected.not_to include "[[_Toc12345]]" }
25
-
26
32
  end
@@ -1,9 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/basic.html') }
6
- let(:document) { Nokogiri::HTML(input) }
4
+ let(:input) { File.read("spec/assets/basic.html") }
5
+ # let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
9
8
  it { is_expected.to match /plain text ?\n/ }
@@ -21,25 +20,40 @@ describe ReverseAdoc do
21
20
  it { is_expected.to match /_double em tags_/ }
22
21
  it { is_expected.to match /_double em tags in p tag_/ }
23
22
  it { is_expected.to match /a _em with leading and trailing_ whitespace/ }
24
- it { is_expected.to match /a _em with extra leading and trailing_ whitespace/ }
23
+ it {
24
+ is_expected.to match /a _em with extra leading and trailing_ whitespace/
25
+ }
25
26
 
26
27
  it { is_expected.to match /\*strong tag content\*/ }
27
28
  it { is_expected.to match /before and after empty strong tags/ }
28
- it { is_expected.to match /before and after strong tags containing whitespace/ }
29
+ it {
30
+ is_expected.to match /before and after strong tags containing whitespace/
31
+ }
29
32
  it { is_expected.to match /\*double strong tags\*/ }
30
33
  it { is_expected.to match /\*double strong tags in p tag\*/ }
31
- it { is_expected.to match /before \*double strong tags containing whitespace\* after/ }
32
- it { is_expected.to match /a \*strong with leading and trailing\* whitespace/ }
33
- it { is_expected.to match /a \*strong with extra leading and trailing\* whitespace/ }
34
-
35
- it { is_expected.to match /H~2~O/ }
36
- it { is_expected.to match /A\^2\^B/ }
34
+ it {
35
+ is_expected.to match /before \*double strong tags containing whitespace\* after/
36
+ }
37
+ it {
38
+ is_expected.to match /a \*strong with leading and trailing\* whitespace/
39
+ }
40
+ it {
41
+ is_expected.to match /a \*strong with extra leading and trailing\* whitespace/
42
+ }
43
+
44
+ it { is_expected.to match /constrai\*\*ned\*\* strong/ }
45
+ it { is_expected.to match /constrai__ned__ italic/ }
37
46
 
38
47
  it { is_expected.to match /_i tag content_/ }
39
48
  it { is_expected.to match /\*b tag content\*/ }
40
49
 
41
- it { is_expected.to match /br tags become double space followed by newline \+\n/ }
42
- #it { should match /br tags XXX \n/ }
50
+ it { is_expected.to match /H~2~O/ }
51
+ it { is_expected.to match /A\^2\^B/ }
52
+
53
+ it {
54
+ is_expected.to match /br tags become double space followed by newline \+\n/
55
+ }
56
+ # it { should match /br tags XXX \n/ }
43
57
 
44
58
  it { is_expected.to match /before hr \n\* \* \*\n after hr/ }
45
59
 
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/code.html') }
4
+ let(:input) { File.read("spec/assets/code.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -23,5 +22,4 @@ describe ReverseAdoc do
23
22
  it { is_expected.to match(/^ beep\n/) }
24
23
  it { is_expected.to match(/^end tell\n/) }
25
24
  end
26
-
27
25
  end
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/escapables.html') }
4
+ let(:input) { File.read("spec/assets/escapables.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -10,7 +9,7 @@ describe ReverseAdoc do
10
9
  it { is_expected.to include ' \*\*two asterisks\*\* ' }
11
10
  it { is_expected.to include ' \*\*\*three asterisks\*\*\* ' }
12
11
  it { is_expected.to include ' \*and*the\* ' }
13
- it { is_expected.to include ' asterisc*word ' }
12
+ it { is_expected.to include " asterisc*word " }
14
13
  it { is_expected.to include ' asterisc**multword asterisks\*\*\* ' }
15
14
  end
16
15
 
@@ -20,7 +19,7 @@ describe ReverseAdoc do
20
19
  end
21
20
 
22
21
  context "multiple underscores with undersocre inside words and new lines" do
23
- it { is_expected.to include 'another_undersocre' }
22
+ it { is_expected.to include "another_undersocre" }
24
23
  it { is_expected.to include ' \_\_\_three__underscores\_\_\_ ' }
25
24
  end
26
25
 
@@ -28,5 +27,4 @@ describe ReverseAdoc do
28
27
  let(:expected_output) { "....\nvar theoretical_max_infin = 1.0;\n....\n" }
29
28
  it { is_expected.to include expected_output }
30
29
  end
31
-
32
30
  end
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/from_the_wild.html') }
4
+ let(:input) { File.read("spec/assets/from_the_wild.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -13,5 +12,4 @@ describe ReverseAdoc do
13
12
  it "should not over escape * or _" do
14
13
  expect(subject).to include 'link:example.com/foo_bar[image::example.com/foo_bar.png[] I\_AM\_HELPFUL]'
15
14
  end
16
-
17
15
  end
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/html_fragment.html') }
4
+ let(:input) { File.read("spec/assets/html_fragment.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/lists.html') }
4
+ let(:input) { File.read("spec/assets/lists.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -30,7 +29,9 @@ describe ReverseAdoc do
30
29
 
31
30
  context "list start, reversed" do
32
31
  it { is_expected.to match /\n\[start=3\]\n\. another ordered list entry\n/ }
33
- it { is_expected.to match /\n\[%reversed\]\n\. a reversed ordered list entry\n/ }
32
+ it {
33
+ is_expected.to match /\n\[%reversed\]\n\. a reversed ordered list entry\n/
34
+ }
34
35
  end
35
36
 
36
37
  context "nested list with no whitespace" do
@@ -49,8 +50,12 @@ describe ReverseAdoc do
49
50
 
50
51
  context "lists containing links" do
51
52
  it { is_expected.to match /\n\* link:Basic_concepts\[1 Basic concepts\]\n/ }
52
- it { is_expected.to match /\n\* link:History_of_the_idea\[2 History of the idea\]\n/ }
53
- it { is_expected.to match /\n\* link:Intelligence_explosion\[3 Intelligence explosion\]\n/ }
53
+ it {
54
+ is_expected.to match /\n\* link:History_of_the_idea\[2 History of the idea\]\n/
55
+ }
56
+ it {
57
+ is_expected.to match /\n\* link:Intelligence_explosion\[3 Intelligence explosion\]\n/
58
+ }
54
59
  end
55
60
 
56
61
  context "lists containing embedded <p> tags" do
@@ -61,7 +66,7 @@ describe ReverseAdoc do
61
66
  xit { is_expected.to match /\n\* li 1, p 1\n\n\* li 1, p 2\n/ }
62
67
  end
63
68
 
64
- context 'it produces correct numbering' do
69
+ context "it produces correct numbering" do
65
70
  it { is_expected.to include "\. one" }
66
71
  it { is_expected.to include "\.\. one one" }
67
72
  it { is_expected.to include "\.\. one two" }
@@ -82,5 +87,4 @@ describe ReverseAdoc do
82
87
  it { is_expected.to match /\n\* charlie\n/ }
83
88
  it { is_expected.to match /\n\* delta\n/ }
84
89
  end
85
-
86
90
  end
@@ -1,8 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/paragraphs.html') }
4
+ let(:input) { File.read("spec/assets/paragraphs.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
@@ -1,12 +1,12 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/quotation.html') }
4
+ let(:input) { File.read("spec/assets/quotation.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
9
8
  it { is_expected.to match /\n Block of code$/ }
10
- it { is_expected.to include "\n____\nFirst quoted paragraph\n\nSecond quoted paragraph\n____\n" }
11
-
9
+ it {
10
+ is_expected.to include "\n____\nFirst quoted paragraph\n\nSecond quoted paragraph\n____\n"
11
+ }
12
12
  end
@@ -1,17 +1,24 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/tables.html') }
4
+ let(:input) { File.read("spec/assets/tables.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseAdoc.convert(input) }
8
7
 
9
- it { is_expected.to match /\[\[A\]\]\n\|===\n\| \[\[C\]\]header 1 \| header 2 \| header 3\n\n/ }
10
- it { is_expected.to match /\nh\| \[\[D\]\]data 1-1 \| data 2-1 \| data 3-1\n/ }
8
+ it {
9
+ is_expected.to match /\[\[A\]\]\n\|===\n\| \[\[C\]\]header 1 \| header 2 \| header 3\n\n/
10
+ }
11
+ it {
12
+ is_expected.to match /\nh\| \[\[D\]\]data 1-1 \| data 2-1 \| data 3-1\n/
13
+ }
11
14
  it { is_expected.to match /\nh\| data 1-2 \| data 2-2 \| data 3-2\n/ }
12
15
 
13
- it { is_expected.to match /\n\| _header oblique_ \| \*header bold\* \| `header code`\n\n/ }
14
- it { is_expected.to match /\n\| _data oblique_ \| \*data bold\* \| `data code`\n/ }
16
+ it {
17
+ is_expected.to match /\n\| _header oblique_ \| \*header bold\* \| `header code`\n\n/
18
+ }
19
+ it {
20
+ is_expected.to match /\n\| _data oblique_ \| \*data bold\* \| `data code`\n/
21
+ }
15
22
 
16
23
  it { is_expected.to match /\n\.2\+\| rowspan 2\n/ }
17
24
  it { is_expected.to match /\n2\+| colspan 2\n/ }
@@ -23,9 +30,13 @@ describe ReverseAdoc do
23
30
  it { is_expected.to match /\^\.\^\| center middle\n/ }
24
31
 
25
32
  it { is_expected.to match /\n\.Table _caption_\n\|===\n/ }
26
- it { is_expected.to match /\n\[width=75%\]\n\|===\n\| 75% width table\n/ }
27
- it { is_expected.to match /\n\[frame=topbot,rules=cols\]\n\|===\n\| topbot\n/ }
28
-
29
- it { is_expected.to match /\na|\nHello\n\nThis cell has multiple paragraphs\n\n/ }
33
+ # it { is_expected.to match /\n\[width=75%\]\n\|===\n\| 75% width table\n/ }
34
+ it {
35
+ is_expected.to match /\n\[frame=topbot,rules=cols\]\n\|===\n\| topbot\n/
36
+ }
37
+
38
+ it {
39
+ is_expected.to match /\na|\nHello\n\nThis cell has multiple paragraphs\n\n/
40
+ }
30
41
  it { is_expected.to match /\n\| This cell has a single paragraph\n/ }
31
42
  end
@@ -1,38 +1,41 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe ReverseAdoc do
4
-
5
- let(:input) { File.read('spec/assets/unknown_tags.html') }
4
+ let(:input) { File.read("spec/assets/unknown_tags.html") }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  let(:result) { ReverseAdoc.convert(input) }
8
7
 
9
- context 'with unknown_tags = :pass_through' do
8
+ context "with unknown_tags = :pass_through" do
10
9
  before { ReverseAdoc.config.unknown_tags = :pass_through }
11
10
 
12
11
  it { expect(result).to include "<bar>Foo with bar</bar>" }
13
12
  end
14
13
 
15
- context 'with unknown_tags = :raise' do
14
+ context "with unknown_tags = :raise" do
16
15
  before { ReverseAdoc.config.unknown_tags = :raise }
17
16
 
18
17
  it { expect { result }.to raise_error(ReverseAdoc::UnknownTagError) }
19
18
  end
20
19
 
21
- context 'with unknown_tags = :drop' do
20
+ context "with unknown_tags = :drop" do
22
21
  before { ReverseAdoc.config.unknown_tags = :drop }
23
22
 
24
- it { expect(result).to eq '' }
23
+ it { expect(result).to eq "" }
25
24
  end
26
25
 
27
- context 'with unknown_tags = :bypass' do
26
+ context "with unknown_tags = :bypass" do
28
27
  before { ReverseAdoc.config.unknown_tags = :bypass }
29
28
 
30
29
  it { expect(result).to eq "Foo with bar\n\n" }
31
30
  end
32
31
 
33
- context 'with unknown_tags = :something_wrong' do
32
+ context "with unknown_tags = :something_wrong" do
34
33
  before { ReverseAdoc.config.unknown_tags = :something_wrong }
35
34
 
36
- it { expect { result }.to raise_error(ReverseAdoc::InvalidConfigurationError) }
35
+ it {
36
+ expect do
37
+ result
38
+ end.to raise_error(ReverseAdoc::InvalidConfigurationError)
39
+ }
37
40
  end
38
41
  end