rich_text_renderer 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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