File tree Expand file tree Collapse file tree 5 files changed +69
-3
lines changed
article_json/export/html/elements
spec/article_json/elements/export/html Expand file tree Collapse file tree 5 files changed +69
-3
lines changed Original file line number Diff line number Diff line change 46
46
require_relative 'article_json/export/html/elements/image'
47
47
require_relative 'article_json/export/html/elements/text_box'
48
48
require_relative 'article_json/export/html/elements/quote'
49
+ require_relative 'article_json/export/html/elements/embed'
Original file line number Diff line number Diff line change @@ -30,13 +30,14 @@ def create_text_node(text)
30
30
class << self
31
31
def element_classes
32
32
{
33
+ text : Text ,
34
+ paragraph : Paragraph ,
33
35
heading : Heading ,
34
- image : Image ,
35
36
list : List ,
36
- paragraph : Paragraph ,
37
- text : Text ,
37
+ image : Image ,
38
38
text_box : TextBox ,
39
39
quote : Quote ,
40
+ embed : Embed ,
40
41
}
41
42
end
42
43
end
Original file line number Diff line number Diff line change
1
+ module ArticleJSON
2
+ module Export
3
+ module HTML
4
+ module Elements
5
+ class Embed < Base
6
+ include Shared ::Caption
7
+
8
+ def build
9
+ create_element ( :figure ) . tap do |figure |
10
+ figure . add_child ( embed_node )
11
+ figure . add_child ( caption_node ( :figcaption ) )
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def embed_node
18
+ create_element ( :div , embedded_object , class : 'embed' )
19
+ end
20
+
21
+ def embedded_object
22
+ "Embedded Object: #{ @element . embed_type } -#{ @element . embed_id } "
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
Original file line number Diff line number Diff line change 63
63
end
64
64
it { should eq '<aside><p>Foo Bar</p><small>Baz</small></aside>' }
65
65
end
66
+
67
+ context 'when the source element is an embedded element' do
68
+ let ( :source_element ) do
69
+ ArticleJSON ::Elements ::Embed . new (
70
+ embed_type : :something ,
71
+ embed_id : 666 ,
72
+ caption : [ sample_text ]
73
+ )
74
+ end
75
+ let ( :expected_html ) do
76
+ '<figure><div class="embed">Embedded Object: something-666</div>' \
77
+ '<figcaption>Foo Bar</figcaption></figure>'
78
+ end
79
+ it { should eq expected_html }
80
+ end
66
81
end
67
82
68
83
describe '#element_classes' do
Original file line number Diff line number Diff line change
1
+ describe ArticleJSON ::Export ::HTML ::Elements ::Embed do
2
+ subject ( :element ) { described_class . new ( source_element ) }
3
+
4
+ let ( :source_element ) do
5
+ ArticleJSON ::Elements ::Embed . new (
6
+ embed_type : :something ,
7
+ embed_id : 666 ,
8
+ caption : [ ArticleJSON ::Elements ::Text . new ( content : 'Foo Bar' ) ] ,
9
+ tags : %w( test )
10
+ )
11
+ end
12
+
13
+ describe '#build' do
14
+ subject { element . build . to_html ( save_with : 0 ) }
15
+ let ( :expected_html ) do
16
+ '<figure><div class="embed">Embedded Object: something-666</div>' \
17
+ '<figcaption>Foo Bar</figcaption></figure>'
18
+ end
19
+ it { should eq expected_html }
20
+ end
21
+ end
You can’t perform that action at this time.
0 commit comments