Class: Coradoc::Mirror::ReverseBuilder::Base
- Inherits:
-
Object
- Object
- Coradoc::Mirror::ReverseBuilder::Base
- Defined in:
- lib/coradoc/mirror/reverse_builder.rb
Overview
Base class for all reverse builders. Subclasses register one or more Mirror type strings via ‘registers` and implement `#build`. Shared helpers (build_content, extract_text, apply_mark, …) are delegated to the context (a MirrorToCoreModel instance), keeping each builder focused on the per-type mapping only (DRY).
Direct Known Subclasses
Admonition, BiblioEntry, Bibliography, Blockquote, BulletList, Caption, CodeBlock, DefinitionList, Document, Example, Figure, FootnoteEntry, FootnoteMarker, Footnotes, Frontmatter, GenericBlock, Header, HorizontalRule, Image, InlineText, ListItem, OpenBlock, OrderedList, Paragraph, Preamble, Section, Sections, Sidebar, SoftBreak, Table, TableBody, TableCell, TableHead, TableRow, Text, Toc, TocEntry, Verse
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Class Method Summary collapse
-
.registers(*types) ⇒ Object
DSL: declare which Mirror type strings this builder handles.
Instance Method Summary collapse
- #apply_mark(inner, mark) ⇒ Object
- #build(_node) ⇒ Object
-
#build_content(node) ⇒ Object
Shared helpers — all delegate to the context (DRY).
- #build_inline_children(node) ⇒ Object
- #build_node(node) ⇒ Object
- #extract_text(node) ⇒ Object
-
#initialize(context) ⇒ Base
constructor
A new instance of Base.
- #inline_content(element) ⇒ Object
Constructor Details
#initialize(context) ⇒ Base
Returns a new instance of Base.
56 57 58 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 56 def initialize(context) @context = context end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
54 55 56 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 54 def context @context end |
Class Method Details
.registers(*types) ⇒ Object
DSL: declare which Mirror type strings this builder handles. Multiple strings per builder are allowed (e.g. all JS SECTION_TYPES route to the same SectionElement builder).
77 78 79 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 77 def registers(*types) types.each { |t| ReverseBuilder.register(t, self) } end |
Instance Method Details
#apply_mark(inner, mark) ⇒ Object
70 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 70 def apply_mark(inner, mark) = context.apply_mark(inner, mark) |
#build(_node) ⇒ Object
60 61 62 63 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 60 def build(_node) raise NotImplementedError, "#{self.class} must implement #build(node)" end |
#build_content(node) ⇒ Object
Shared helpers — all delegate to the context (DRY).
66 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 66 def build_content(node) = context.build_content(node) |
#build_inline_children(node) ⇒ Object
67 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 67 def build_inline_children(node) = context.build_inline_children(node) |
#build_node(node) ⇒ Object
68 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 68 def build_node(node) = context.build_node(node) |
#extract_text(node) ⇒ Object
69 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 69 def extract_text(node) = context.extract_text(node) |
#inline_content(element) ⇒ Object
71 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 71 def inline_content(element) = context.inline_content(element) |