rich_text_renderer 0.1.0 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.md +1 -1
- data/lib/rich_text_renderer/block_renderers/asset_block_renderer.rb +27 -0
- data/lib/rich_text_renderer/block_renderers/asset_hyperlink_renderer.rb +64 -0
- data/lib/rich_text_renderer/block_renderers/blockquote_renderer.rb +1 -1
- data/lib/rich_text_renderer/block_renderers/entry_block_renderer.rb +1 -1
- data/lib/rich_text_renderer/block_renderers.rb +2 -0
- data/lib/rich_text_renderer/renderer.rb +2 -0
- data/lib/rich_text_renderer/text_renderers/text_renderer.rb +2 -0
- data/lib/rich_text_renderer/version.rb +1 -1
- metadata +9 -165
- data/.gitignore +0 -7
- data/.rspec +0 -1
- data/.rubocop.yml +0 -27
- data/.rubocop_todo.yml +0 -35
- data/.travis.yml +0 -13
- data/.yardopts +0 -4
- data/Gemfile +0 -3
- data/Gemfile.lock +0 -110
- data/Guardfile +0 -24
- data/Rakefile +0 -33
- data/coverage/.last_run.json +0 -5
- data/coverage/.resultset.json +0 -1372
- data/coverage/.resultset.json.lock +0 -0
- data/coverage/assets/0.10.2/application.css +0 -799
- data/coverage/assets/0.10.2/application.js +0 -1707
- data/coverage/assets/0.10.2/colorbox/border.png +0 -0
- data/coverage/assets/0.10.2/colorbox/controls.png +0 -0
- data/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
- data/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.10.2/favicon_green.png +0 -0
- data/coverage/assets/0.10.2/favicon_red.png +0 -0
- data/coverage/assets/0.10.2/favicon_yellow.png +0 -0
- data/coverage/assets/0.10.2/loading.gif +0 -0
- data/coverage/assets/0.10.2/magnify.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/index.html +0 -9146
- data/doc/RichTextRenderer/BaseBlockRenderer.html +0 -242
- data/doc/RichTextRenderer/BaseInlineRenderer.html +0 -242
- data/doc/RichTextRenderer/BaseNodeRenderer.html +0 -300
- data/doc/RichTextRenderer/BlockQuoteRenderer.html +0 -169
- data/doc/RichTextRenderer/BoldRenderer.html +0 -169
- data/doc/RichTextRenderer/CodeRenderer.html +0 -169
- data/doc/RichTextRenderer/DocumentRenderer.html +0 -242
- data/doc/RichTextRenderer/EntryBlockRenderer.html +0 -239
- data/doc/RichTextRenderer/HeadingFiveRenderer.html +0 -169
- data/doc/RichTextRenderer/HeadingFourRenderer.html +0 -169
- data/doc/RichTextRenderer/HeadingOneRenderer.html +0 -169
- data/doc/RichTextRenderer/HeadingSixRenderer.html +0 -169
- data/doc/RichTextRenderer/HeadingThreeRenderer.html +0 -169
- data/doc/RichTextRenderer/HeadingTwoRenderer.html +0 -169
- data/doc/RichTextRenderer/HrRenderer.html +0 -238
- data/doc/RichTextRenderer/HyperlinkRenderer.html +0 -246
- data/doc/RichTextRenderer/ItalicRenderer.html +0 -169
- data/doc/RichTextRenderer/ListItemRenderer.html +0 -169
- data/doc/RichTextRenderer/NullRenderer.html +0 -238
- data/doc/RichTextRenderer/OrderedListRenderer.html +0 -169
- data/doc/RichTextRenderer/ParagraphRenderer.html +0 -169
- data/doc/RichTextRenderer/Renderer.html +0 -349
- data/doc/RichTextRenderer/TextRenderer.html +0 -254
- data/doc/RichTextRenderer/UnderlineRenderer.html +0 -169
- data/doc/RichTextRenderer/UnorderedListRenderer.html +0 -169
- data/doc/RichTextRenderer.html +0 -155
- data/doc/StructuredTextRenderer/BaseBlockRenderer.html +0 -242
- data/doc/StructuredTextRenderer/BaseInlineRenderer.html +0 -242
- data/doc/StructuredTextRenderer/BaseNodeRenderer.html +0 -300
- data/doc/StructuredTextRenderer/BoldRenderer.html +0 -169
- data/doc/StructuredTextRenderer/CodeRenderer.html +0 -169
- data/doc/StructuredTextRenderer/DocumentRenderer.html +0 -242
- data/doc/StructuredTextRenderer/EntryBlockRenderer.html +0 -239
- data/doc/StructuredTextRenderer/HeadingFiveRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HeadingFourRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HeadingOneRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HeadingSixRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HeadingThreeRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HeadingTwoRenderer.html +0 -169
- data/doc/StructuredTextRenderer/HrRenderer.html +0 -238
- data/doc/StructuredTextRenderer/HyperlinkRenderer.html +0 -246
- data/doc/StructuredTextRenderer/ItalicRenderer.html +0 -169
- data/doc/StructuredTextRenderer/ListItemRenderer.html +0 -169
- data/doc/StructuredTextRenderer/NullRenderer.html +0 -238
- data/doc/StructuredTextRenderer/OrderedListRenderer.html +0 -169
- data/doc/StructuredTextRenderer/ParagraphRenderer.html +0 -169
- data/doc/StructuredTextRenderer/QuoteRenderer.html +0 -169
- data/doc/StructuredTextRenderer/Renderer.html +0 -349
- data/doc/StructuredTextRenderer/TextRenderer.html +0 -254
- data/doc/StructuredTextRenderer/UnderlineRenderer.html +0 -169
- data/doc/StructuredTextRenderer/UnorderedListRenderer.html +0 -169
- data/doc/StructuredTextRenderer.html +0 -155
- data/doc/_index.html +0 -387
- data/doc/class_list.html +0 -51
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -58
- data/doc/css/style.css +0 -496
- data/doc/file.CHANGELOG.html +0 -91
- data/doc/file.LICENSE.html +0 -70
- data/doc/file.README.html +0 -170
- data/doc/file_list.html +0 -66
- data/doc/frames.html +0 -17
- data/doc/index.html +0 -170
- data/doc/js/app.js +0 -292
- data/doc/js/full_list.js +0 -216
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -147
- data/doc/top-level-namespace.html +0 -110
- data/rich_text_renderer.gemspec +0 -30
- data/spec/lib/rich_text_renderer/block_renderers/base_block_renderer_spec.rb +0 -26
- data/spec/lib/rich_text_renderer/block_renderers/blockquote_renderer_spec.rb +0 -25
- data/spec/lib/rich_text_renderer/block_renderers/entry_block_renderer_spec.rb +0 -15
- data/spec/lib/rich_text_renderer/block_renderers/heading_five_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/heading_four_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/heading_one_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/heading_six_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/heading_three_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/heading_two_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/hr_renderer_spec.rb +0 -13
- data/spec/lib/rich_text_renderer/block_renderers/hyperlink_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/list_item_renderer_spec.rb +0 -24
- data/spec/lib/rich_text_renderer/block_renderers/ordered_list_renderer_spec.rb +0 -56
- data/spec/lib/rich_text_renderer/block_renderers/paragraph_renderer_spec.rb +0 -30
- data/spec/lib/rich_text_renderer/block_renderers/unordered_list_renderer_spec.rb +0 -56
- data/spec/lib/rich_text_renderer/document_renderers/document_renderer_spec.rb +0 -42
- data/spec/lib/rich_text_renderer/null_renderer_spec.rb +0 -19
- data/spec/lib/rich_text_renderer/renderer_spec.rb +0 -308
- data/spec/lib/rich_text_renderer/text_renderers/base_inline_renderer_spec.rb +0 -11
- data/spec/lib/rich_text_renderer/text_renderers/bold_renderer_spec.rb +0 -11
- data/spec/lib/rich_text_renderer/text_renderers/code_renderer_spec.rb +0 -11
- data/spec/lib/rich_text_renderer/text_renderers/italic_renderer_spec.rb +0 -11
- data/spec/lib/rich_text_renderer/text_renderers/text_renderer_spec.rb +0 -53
- data/spec/lib/rich_text_renderer/text_renderers/underline_renderer_spec.rb +0 -11
- data/spec/spec_helper.rb +0 -82
@@ -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
|