rich_text_renderer 0.2.2 → 0.2.3

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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/lib/rich_text_renderer/version.rb +1 -1
  4. metadata +6 -167
  5. data/.gitignore +0 -7
  6. data/.rspec +0 -1
  7. data/.rubocop.yml +0 -27
  8. data/.rubocop_todo.yml +0 -35
  9. data/.travis.yml +0 -13
  10. data/.yardopts +0 -4
  11. data/Gemfile +0 -3
  12. data/Gemfile.lock +0 -110
  13. data/Guardfile +0 -24
  14. data/Rakefile +0 -33
  15. data/coverage/.last_run.json +0 -5
  16. data/coverage/.resultset.json +0 -1372
  17. data/coverage/.resultset.json.lock +0 -0
  18. data/coverage/assets/0.10.2/application.css +0 -799
  19. data/coverage/assets/0.10.2/application.js +0 -1707
  20. data/coverage/assets/0.10.2/colorbox/border.png +0 -0
  21. data/coverage/assets/0.10.2/colorbox/controls.png +0 -0
  22. data/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
  23. data/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
  24. data/coverage/assets/0.10.2/favicon_green.png +0 -0
  25. data/coverage/assets/0.10.2/favicon_red.png +0 -0
  26. data/coverage/assets/0.10.2/favicon_yellow.png +0 -0
  27. data/coverage/assets/0.10.2/loading.gif +0 -0
  28. data/coverage/assets/0.10.2/magnify.png +0 -0
  29. data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  30. data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  31. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  32. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  33. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  34. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  35. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  36. data/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  37. data/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
  38. data/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  39. data/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
  40. data/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
  41. data/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  42. data/coverage/index.html +0 -9146
  43. data/doc/RichTextRenderer/BaseBlockRenderer.html +0 -242
  44. data/doc/RichTextRenderer/BaseInlineRenderer.html +0 -242
  45. data/doc/RichTextRenderer/BaseNodeRenderer.html +0 -300
  46. data/doc/RichTextRenderer/BlockQuoteRenderer.html +0 -169
  47. data/doc/RichTextRenderer/BoldRenderer.html +0 -169
  48. data/doc/RichTextRenderer/CodeRenderer.html +0 -169
  49. data/doc/RichTextRenderer/DocumentRenderer.html +0 -242
  50. data/doc/RichTextRenderer/EntryBlockRenderer.html +0 -239
  51. data/doc/RichTextRenderer/HeadingFiveRenderer.html +0 -169
  52. data/doc/RichTextRenderer/HeadingFourRenderer.html +0 -169
  53. data/doc/RichTextRenderer/HeadingOneRenderer.html +0 -169
  54. data/doc/RichTextRenderer/HeadingSixRenderer.html +0 -169
  55. data/doc/RichTextRenderer/HeadingThreeRenderer.html +0 -169
  56. data/doc/RichTextRenderer/HeadingTwoRenderer.html +0 -169
  57. data/doc/RichTextRenderer/HrRenderer.html +0 -238
  58. data/doc/RichTextRenderer/HyperlinkRenderer.html +0 -246
  59. data/doc/RichTextRenderer/ItalicRenderer.html +0 -169
  60. data/doc/RichTextRenderer/ListItemRenderer.html +0 -169
  61. data/doc/RichTextRenderer/NullRenderer.html +0 -238
  62. data/doc/RichTextRenderer/OrderedListRenderer.html +0 -169
  63. data/doc/RichTextRenderer/ParagraphRenderer.html +0 -169
  64. data/doc/RichTextRenderer/Renderer.html +0 -349
  65. data/doc/RichTextRenderer/TextRenderer.html +0 -254
  66. data/doc/RichTextRenderer/UnderlineRenderer.html +0 -169
  67. data/doc/RichTextRenderer/UnorderedListRenderer.html +0 -169
  68. data/doc/RichTextRenderer.html +0 -155
  69. data/doc/StructuredTextRenderer/BaseBlockRenderer.html +0 -242
  70. data/doc/StructuredTextRenderer/BaseInlineRenderer.html +0 -242
  71. data/doc/StructuredTextRenderer/BaseNodeRenderer.html +0 -300
  72. data/doc/StructuredTextRenderer/BoldRenderer.html +0 -169
  73. data/doc/StructuredTextRenderer/CodeRenderer.html +0 -169
  74. data/doc/StructuredTextRenderer/DocumentRenderer.html +0 -242
  75. data/doc/StructuredTextRenderer/EntryBlockRenderer.html +0 -239
  76. data/doc/StructuredTextRenderer/HeadingFiveRenderer.html +0 -169
  77. data/doc/StructuredTextRenderer/HeadingFourRenderer.html +0 -169
  78. data/doc/StructuredTextRenderer/HeadingOneRenderer.html +0 -169
  79. data/doc/StructuredTextRenderer/HeadingSixRenderer.html +0 -169
  80. data/doc/StructuredTextRenderer/HeadingThreeRenderer.html +0 -169
  81. data/doc/StructuredTextRenderer/HeadingTwoRenderer.html +0 -169
  82. data/doc/StructuredTextRenderer/HrRenderer.html +0 -238
  83. data/doc/StructuredTextRenderer/HyperlinkRenderer.html +0 -246
  84. data/doc/StructuredTextRenderer/ItalicRenderer.html +0 -169
  85. data/doc/StructuredTextRenderer/ListItemRenderer.html +0 -169
  86. data/doc/StructuredTextRenderer/NullRenderer.html +0 -238
  87. data/doc/StructuredTextRenderer/OrderedListRenderer.html +0 -169
  88. data/doc/StructuredTextRenderer/ParagraphRenderer.html +0 -169
  89. data/doc/StructuredTextRenderer/QuoteRenderer.html +0 -169
  90. data/doc/StructuredTextRenderer/Renderer.html +0 -349
  91. data/doc/StructuredTextRenderer/TextRenderer.html +0 -254
  92. data/doc/StructuredTextRenderer/UnderlineRenderer.html +0 -169
  93. data/doc/StructuredTextRenderer/UnorderedListRenderer.html +0 -169
  94. data/doc/StructuredTextRenderer.html +0 -155
  95. data/doc/_index.html +0 -387
  96. data/doc/class_list.html +0 -51
  97. data/doc/css/common.css +0 -1
  98. data/doc/css/full_list.css +0 -58
  99. data/doc/css/style.css +0 -496
  100. data/doc/file.CHANGELOG.html +0 -91
  101. data/doc/file.LICENSE.html +0 -70
  102. data/doc/file.README.html +0 -170
  103. data/doc/file_list.html +0 -66
  104. data/doc/frames.html +0 -17
  105. data/doc/index.html +0 -170
  106. data/doc/js/app.js +0 -292
  107. data/doc/js/full_list.js +0 -216
  108. data/doc/js/jquery.js +0 -4
  109. data/doc/method_list.html +0 -147
  110. data/doc/top-level-namespace.html +0 -110
  111. data/rich_text_renderer.gemspec +0 -30
  112. data/spec/lib/rich_text_renderer/block_renderers/asset_block_renderer_spec.rb +0 -101
  113. data/spec/lib/rich_text_renderer/block_renderers/asset_hyperlink_renderer_spec.rb +0 -32
  114. data/spec/lib/rich_text_renderer/block_renderers/base_block_renderer_spec.rb +0 -26
  115. data/spec/lib/rich_text_renderer/block_renderers/blockquote_renderer_spec.rb +0 -25
  116. data/spec/lib/rich_text_renderer/block_renderers/entry_block_renderer_spec.rb +0 -15
  117. data/spec/lib/rich_text_renderer/block_renderers/heading_five_renderer_spec.rb +0 -24
  118. data/spec/lib/rich_text_renderer/block_renderers/heading_four_renderer_spec.rb +0 -24
  119. data/spec/lib/rich_text_renderer/block_renderers/heading_one_renderer_spec.rb +0 -24
  120. data/spec/lib/rich_text_renderer/block_renderers/heading_six_renderer_spec.rb +0 -24
  121. data/spec/lib/rich_text_renderer/block_renderers/heading_three_renderer_spec.rb +0 -24
  122. data/spec/lib/rich_text_renderer/block_renderers/heading_two_renderer_spec.rb +0 -24
  123. data/spec/lib/rich_text_renderer/block_renderers/hr_renderer_spec.rb +0 -13
  124. data/spec/lib/rich_text_renderer/block_renderers/hyperlink_renderer_spec.rb +0 -24
  125. data/spec/lib/rich_text_renderer/block_renderers/list_item_renderer_spec.rb +0 -24
  126. data/spec/lib/rich_text_renderer/block_renderers/ordered_list_renderer_spec.rb +0 -56
  127. data/spec/lib/rich_text_renderer/block_renderers/paragraph_renderer_spec.rb +0 -30
  128. data/spec/lib/rich_text_renderer/block_renderers/unordered_list_renderer_spec.rb +0 -56
  129. data/spec/lib/rich_text_renderer/document_renderers/document_renderer_spec.rb +0 -42
  130. data/spec/lib/rich_text_renderer/null_renderer_spec.rb +0 -19
  131. data/spec/lib/rich_text_renderer/renderer_spec.rb +0 -308
  132. data/spec/lib/rich_text_renderer/text_renderers/base_inline_renderer_spec.rb +0 -11
  133. data/spec/lib/rich_text_renderer/text_renderers/bold_renderer_spec.rb +0 -11
  134. data/spec/lib/rich_text_renderer/text_renderers/code_renderer_spec.rb +0 -11
  135. data/spec/lib/rich_text_renderer/text_renderers/italic_renderer_spec.rb +0 -11
  136. data/spec/lib/rich_text_renderer/text_renderers/text_renderer_spec.rb +0 -65
  137. data/spec/lib/rich_text_renderer/text_renderers/underline_renderer_spec.rb +0 -11
  138. data/spec/spec_helper.rb +0 -105
@@ -1,101 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_image_asset_node = {
4
- 'data' => {
5
- 'target' => {
6
- 'fields' => {
7
- 'title' => 'Foo',
8
- 'file' => {
9
- 'contentType' => 'image/jpeg',
10
- 'url' => 'https://example.com/cat.jpg',
11
- },
12
- }
13
- }
14
- }
15
- }
16
-
17
- mock_image_asset_resolved_node = {
18
- 'data' => {
19
- 'target' => MockAsset.new(
20
- {
21
- 'fields' => {
22
- 'title' => 'Foo',
23
- 'file' => {
24
- 'contentType' => 'image/jpeg',
25
- 'url' => 'https://example.com/cat.jpg',
26
- },
27
- }
28
- }
29
- )
30
- }
31
- }
32
-
33
- mock_non_image_asset_node = {
34
- 'data' => {
35
- 'target' => {
36
- 'fields' => {
37
- 'title' => 'Foo',
38
- 'file' => {
39
- 'contentType' => 'text/csv',
40
- 'url' => 'https://example.com/cat.csv',
41
- },
42
- }
43
- }
44
- }
45
- }
46
-
47
- mock_non_image_asset_resolved_node = {
48
- 'data' => {
49
- 'target' => MockAsset.new(
50
- {
51
- 'fields' => {
52
- 'title' => 'Foo',
53
- 'file' => {
54
- 'contentType' => 'text/csv',
55
- 'url' => 'https://example.com/cat.csv',
56
- },
57
- }
58
- }
59
- )
60
- }
61
- }
62
-
63
- describe RichTextRenderer::AssetBlockRenderer do
64
- subject do
65
- described_class.new(
66
- 'text' => RichTextRenderer::TextRenderer
67
- )
68
- end
69
-
70
- describe '#render' do
71
- it 'renders an image asset hash as img' do
72
- expect(subject.render(mock_image_asset_node)).to eq '<img src="https://example.com/cat.jpg" alt="Foo" />'
73
- end
74
-
75
- it 'renders an image asset object as img' do
76
- expect(subject.render(mock_image_asset_resolved_node)).to eq '<img src="https://example.com/cat.jpg" alt="Foo" />'
77
- end
78
-
79
- it 'renders a non image hash as an a' do
80
- expect(subject.render(mock_non_image_asset_node)).to eq '<a href="https://example.com/cat.csv">Foo</a>'
81
- end
82
-
83
- it 'renders a non image object as an a' do
84
- expect(subject.render(mock_non_image_asset_resolved_node)).to eq '<a href="https://example.com/cat.csv">Foo</a>'
85
- end
86
-
87
- describe 'errors' do
88
- it 'raises exception when node is not a data node' do
89
- expect { subject.render({}) }.to raise_exception 'Node target is not an asset - Node: {}'
90
- end
91
-
92
- it 'raises exception when target is nil' do
93
- expect { subject.render({ 'data' => { 'target' => nil }}) }.to raise_exception 'Node target is not an asset - Node: {"data"=>{"target"=>nil}}'
94
- end
95
-
96
- it 'raises exception when target does not contain asset fields' do
97
- expect { subject.render({ 'data' => { 'target' => {} }}) }.to raise_exception 'Node target is not an asset - Node: {"data"=>{"target"=>{}}}'
98
- end
99
- end
100
- end
101
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_asset_hyperlink_node = {
4
- 'data' => {
5
- 'target' => MockAsset.new(
6
- {
7
- 'fields' => {
8
- 'title' => 'Foo',
9
- 'file' => {
10
- 'contentType' => 'image/jpeg',
11
- 'url' => 'https://example.com/cat.jpg',
12
- },
13
- }
14
- }
15
- )
16
- },
17
- 'content' => [{'value' => 'Example', 'nodeType' => 'text', 'marks' => []}],
18
- }
19
-
20
- describe RichTextRenderer::AssetHyperlinkRenderer do
21
- subject do
22
- described_class.new(
23
- 'text' => RichTextRenderer::TextRenderer
24
- )
25
- end
26
-
27
- describe '#render' do
28
- it 'renders an a' do
29
- expect(subject.render(mock_asset_hyperlink_node)).to eq '<a href="https://example.com/cat.jpg">Example</a>'
30
- end
31
- end
32
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::BaseBlockRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer,
12
- 'italic' => RichTextRenderer::ItalicRenderer,
13
- 'underline' => RichTextRenderer::UnderlineRenderer
14
- )
15
- end
16
-
17
- describe '#render' do
18
- it 'by defaults renders a div' do
19
- expect(subject.render(mock_node)).to eq "<div>foo</div>"
20
- end
21
-
22
- it 'will propagate marks to text renderers' do
23
- expect(subject.render(mock_node_with_marks)).to eq "<div><b>foo</b></div>"
24
- end
25
- end
26
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"nodeType" => "paragraph", "content" => [{"value" => "foo", "nodeType" => "text"}]}]}
4
-
5
- mock_node_with_marks = {"content" => [{"nodeType" => "paragraph", "content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}]}
6
-
7
- describe RichTextRenderer::BlockQuoteRenderer do
8
- subject do
9
- described_class.new(
10
- 'paragraph' => RichTextRenderer::ParagraphRenderer,
11
- 'text' => RichTextRenderer::TextRenderer,
12
- 'bold' => RichTextRenderer::BoldRenderer
13
- )
14
- end
15
-
16
- describe '#render' do
17
- it 'renders a blockquote' do
18
- expect(subject.render(mock_node)).to eq "<blockquote><p>foo</p></blockquote>"
19
- end
20
-
21
- it 'will propagate marks to text renderers' do
22
- expect(subject.render(mock_node_with_marks)).to eq "<blockquote><p><b>foo</b></p></blockquote>"
23
- end
24
- end
25
- end
@@ -1,15 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_data_node = {
4
- "data" => {"target" => {"sys" => {"id" => "foo", "type" => "Link", "linkType" => "Entry"}}}
5
- }
6
-
7
- describe RichTextRenderer::EntryBlockRenderer do
8
- subject { described_class.new }
9
-
10
- describe '#render' do
11
- it 'will stringify node data' do
12
- expect(subject.render(mock_data_node)).to eq '<div>{"sys"=>{"id"=>"foo", "type"=>"Link", "linkType"=>"Entry"}}</div>'
13
- end
14
- end
15
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingFiveRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h5' do
17
- expect(subject.render(mock_node)).to eq "<h5>foo</h5>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h5><b>foo</b></h5>"
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingFourRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h4' do
17
- expect(subject.render(mock_node)).to eq "<h4>foo</h4>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h4><b>foo</b></h4>"
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingOneRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h1' do
17
- expect(subject.render(mock_node)).to eq "<h1>foo</h1>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h1><b>foo</b></h1>"
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingSixRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h6' do
17
- expect(subject.render(mock_node)).to eq "<h6>foo</h6>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h6><b>foo</b></h6>"
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingThreeRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h3' do
17
- expect(subject.render(mock_node)).to eq "<h3>foo</h3>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h3><b>foo</b></h3>"
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HeadingTwoRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a h2' do
17
- expect(subject.render(mock_node)).to eq "<h2>foo</h2>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<h2><b>foo</b></h2>"
22
- end
23
- end
24
- end
@@ -1,13 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"nodeType" => "hr"}
4
-
5
- describe RichTextRenderer::HrRenderer do
6
- subject { described_class.new }
7
-
8
- describe '#render' do
9
- it 'will render an hr' do
10
- expect(subject.render(mock_node)).to eq '<hr />'
11
- end
12
- end
13
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"data" => {"uri" => "https://foobar.com"}, "content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"data" => {"uri" => "https://foobar.com"}, "content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::HyperlinkRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders an a' do
17
- expect(subject.render(mock_node)).to eq '<a href="https://foobar.com">foo</a>'
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq '<a href="https://foobar.com"><b>foo</b></a>'
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- describe RichTextRenderer::ListItemRenderer do
8
- subject do
9
- described_class.new(
10
- 'text' => RichTextRenderer::TextRenderer,
11
- 'bold' => RichTextRenderer::BoldRenderer
12
- )
13
- end
14
-
15
- describe '#render' do
16
- it 'renders a li' do
17
- expect(subject.render(mock_node)).to eq "<li>foo</li>"
18
- end
19
-
20
- it 'will propagate marks to text renderers' do
21
- expect(subject.render(mock_node_with_marks)).to eq "<li><b>foo</b></li>"
22
- end
23
- end
24
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [
4
- {
5
- "content" => [{
6
- "content" => [{
7
- "value" => "foo",
8
- "nodeType" => "text",
9
- "nodeClass" => "text"
10
- }],
11
- "nodeType" => "paragraph",
12
- "nodeClass" => "block"
13
- }],
14
- "nodeType" => "list-item",
15
- "nodeClass" => "block"
16
- }]
17
- }
18
-
19
- mock_node_with_marks = {"content" => [
20
- {
21
- "content" => [{
22
- "content" => [{
23
- "marks" => [{"type" => "bold"}],
24
- "value" => "foo",
25
- "nodeType" => "text",
26
- "nodeClass" => "text"
27
- }],
28
- "nodeType" => "paragraph",
29
- "nodeClass" => "block"
30
- }],
31
- "nodeType" => "list-item",
32
- "nodeClass" => "block"
33
- }]
34
- }
35
-
36
-
37
- describe RichTextRenderer::OrderedListRenderer do
38
- subject do
39
- described_class.new(
40
- 'paragraph' => RichTextRenderer::ParagraphRenderer,
41
- 'text' => RichTextRenderer::TextRenderer,
42
- 'bold' => RichTextRenderer::BoldRenderer,
43
- 'list-item' => RichTextRenderer::ListItemRenderer
44
- )
45
- end
46
-
47
- describe '#render' do
48
- it 'renders a ol' do
49
- expect(subject.render(mock_node)).to eq "<ol><li><p>foo</p></li></ol>"
50
- end
51
-
52
- it 'will propagate marks to text renderers' do
53
- expect(subject.render(mock_node_with_marks)).to eq "<ol><li><p><b>foo</b></p></li></ol>"
54
- end
55
- end
56
- end
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [{"value" => "foo", "nodeType" => "text"}]}
4
-
5
- mock_node_with_marks = {"content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
6
-
7
- mock_node_with_multiple_content_nodes = {"content" => [{"value" => "foo", "nodeType" => "text"}, {"value" => " bar", "nodeType" => "text", "marks" => [{"type" => "bold"}]}]}
8
-
9
- describe RichTextRenderer::ParagraphRenderer do
10
- subject do
11
- described_class.new(
12
- 'text' => RichTextRenderer::TextRenderer,
13
- 'bold' => RichTextRenderer::BoldRenderer
14
- )
15
- end
16
-
17
- describe '#render' do
18
- it 'renders a p' do
19
- expect(subject.render(mock_node)).to eq "<p>foo</p>"
20
- end
21
-
22
- it 'will propagate marks to text renderers' do
23
- expect(subject.render(mock_node_with_marks)).to eq "<p><b>foo</b></p>"
24
- end
25
-
26
- it 'will properly render multiple content nodes' do
27
- expect(subject.render(mock_node_with_multiple_content_nodes)).to eq "<p>foo<b> bar</b></p>"
28
- end
29
- end
30
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_node = {"content" => [
4
- {
5
- "content" => [{
6
- "content" => [{
7
- "value" => "foo",
8
- "nodeType" => "text",
9
- "nodeClass" => "text"
10
- }],
11
- "nodeType" => "paragraph",
12
- "nodeClass" => "block"
13
- }],
14
- "nodeType" => "list-item",
15
- "nodeClass" => "block"
16
- }]
17
- }
18
-
19
- mock_node_with_marks = {"content" => [
20
- {
21
- "content" => [{
22
- "content" => [{
23
- "marks" => [{"type" => "bold"}],
24
- "value" => "foo",
25
- "nodeType" => "text",
26
- "nodeClass" => "text"
27
- }],
28
- "nodeType" => "paragraph",
29
- "nodeClass" => "block"
30
- }],
31
- "nodeType" => "list-item",
32
- "nodeClass" => "block"
33
- }]
34
- }
35
-
36
-
37
- describe RichTextRenderer::UnorderedListRenderer do
38
- subject do
39
- described_class.new(
40
- 'paragraph' => RichTextRenderer::ParagraphRenderer,
41
- 'text' => RichTextRenderer::TextRenderer,
42
- 'bold' => RichTextRenderer::BoldRenderer,
43
- 'list-item' => RichTextRenderer::ListItemRenderer
44
- )
45
- end
46
-
47
- describe '#render' do
48
- it 'renders a ul' do
49
- expect(subject.render(mock_node)).to eq "<ul><li><p>foo</p></li></ul>"
50
- end
51
-
52
- it 'will propagate marks to text renderers' do
53
- expect(subject.render(mock_node_with_marks)).to eq "<ul><li><p><b>foo</b></p></li></ul>"
54
- end
55
- end
56
- end
@@ -1,42 +0,0 @@
1
- require 'spec_helper'
2
-
3
- mock_document = {
4
- "nodeType" => "document",
5
- "content" => [
6
- {
7
- "content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}],
8
- "nodeType" => "heading-1",
9
- }
10
- ],
11
- }
12
-
13
- mock_document_with_unknown_nodetype = {
14
- "nodeType" => "document",
15
- "content" => [
16
- {
17
- "content" => [{"value" => "foo", "nodeType" => "text", "marks" => [{"type" => "bold"}]}],
18
- "nodeType" => "unknown",
19
- }
20
- ],
21
- }
22
-
23
- describe RichTextRenderer::DocumentRenderer do
24
- subject do
25
- described_class.new(
26
- 'heading-1' => RichTextRenderer::HeadingOneRenderer,
27
- 'text' => RichTextRenderer::TextRenderer,
28
- 'bold' => RichTextRenderer::BoldRenderer,
29
- nil => RichTextRenderer::NullRenderer
30
- )
31
- end
32
-
33
- describe '#render' do
34
- it 'propagates rendering to renderers' do
35
- expect(subject.render(mock_document)).to eq "<h1><b>foo</b></h1>"
36
- end
37
-
38
- it 'will raise an error unknown node types' do
39
- expect { subject.render(mock_document_with_unknown_nodetype) }.to raise_error "No renderer defined for 'unknown' nodes"
40
- end
41
- end
42
- end
@@ -1,19 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RichTextRenderer::NullRenderer do
4
- subject { described_class.new }
5
-
6
- describe 'null renderer will raise errors for unknown nodes' do
7
- it 'will look for nodeType' do
8
- expect { subject.render({'nodeType' => 'foo'}) }.to raise_error "No renderer defined for 'foo' nodes"
9
- end
10
-
11
- it 'will look for type' do
12
- expect { subject.render({'type' => 'foo'}) }.to raise_error "No renderer defined for 'foo' nodes"
13
- end
14
-
15
- it 'if none of the above found, will dump the node' do
16
- expect { subject.render({'foo' => 'bar'}) }.to raise_error "No renderer defined for '{\"foo\"=>\"bar\"}' nodes"
17
- end
18
- end
19
- end