Class: Coradoc::Markdown::Serializer::ElementSerializer
- Inherits:
-
Object
- Object
- Coradoc::Markdown::Serializer::ElementSerializer
show all
- Defined in:
- lib/coradoc/markdown/serializer/element_serializer.rb
Overview
Base class for element serializers. Subclasses declare:
-
‘handles_type TypeClass` — the model class (or ancestor) they accept
-
‘call(element, ctx)` — the actual serialization
‘handles?` defaults to `is_a?(handles_type)`; override for finer conditional dispatch (e.g. “I handle DefinitionList only when nested”).
Direct Known Subclasses
Serializers::Abbreviation, Serializers::Admonition, Serializers::AttributeList, Serializers::Blockquote, Serializers::Code, Serializers::CodeBlock, Serializers::Comment, Serializers::CrossReference, Serializers::DefinitionList, Serializers::Document, Serializers::Emphasis, Serializers::ExampleBlock, Serializers::Extension, Serializers::Footnote, Serializers::FootnoteReference, Serializers::HardLineBreak, Serializers::Heading, Serializers::Highlight, Serializers::HorizontalRule, Serializers::Image, Serializers::Link, Serializers::List, Serializers::Literal, Serializers::Math, Serializers::OpenBlock, Serializers::Paragraph, Serializers::Pass, Serializers::Sidebar, Serializers::Strikethrough, Serializers::Strong, Serializers::Subscript, Serializers::Superscript, Serializers::Table, Serializers::Underline, Serializers::Verse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.call ⇒ Object
27
28
29
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 27
def call(...)
new.call(...)
end
|
.handles?(_element) ⇒ Boolean
23
24
25
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 23
def handles?(_element)
true
end
|
.handles_type(klass = nil) ⇒ Object
14
15
16
17
18
19
20
21
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 14
def handles_type(klass = nil)
if klass
@handles_type = klass
self
else
@handles_type || (superclass.respond_to?(:handles_type) ? superclass.handles_type : nil)
end
end
|
Instance Method Details
#call(_element, _ctx) ⇒ Object
32
33
34
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 32
def call(_element, _ctx)
raise NotImplementedError, "#{self.class.name}#call not implemented"
end
|
#handles?(element) ⇒ Boolean
36
37
38
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 36
def handles?(element)
self.class.handles?(element)
end
|
#handles_type ⇒ Object
40
41
42
|
# File 'lib/coradoc/markdown/serializer/element_serializer.rb', line 40
def handles_type
self.class.handles_type
end
|