Module: Coradoc::Mirror::MarkReverseBuilder
- Defined in:
- lib/coradoc/mirror/mark_reverse_builder.rb
Overview
OCP-compliant registry for Mirror mark -> CoreModel transformation.
This is the mark-level counterpart to ReverseBuilder (which handles node-level dispatch). Adding support for a new mark type is purely additive:
module MarkReverseBuilder
class Concept < Base
registers 'concept'
def build(inner, _mark)
CoreModel::TermElement.new(children: Array(inner))
end
end
end
No edits to MirrorToCoreModel#apply_mark or any other existing class.
Defined Under Namespace
Classes: Base, Bold, CrossReference, Highlight, Italic, Link, Monospace, Strikethrough, Subscript, Superscript, Underline
Constant Summary collapse
- REGISTRY =
{}
Class Method Summary collapse
Class Method Details
.lookup(type) ⇒ Object
31 32 33 |
# File 'lib/coradoc/mirror/mark_reverse_builder.rb', line 31 def lookup(type) REGISTRY[type] end |
.register(type, builder_class) ⇒ Object
27 28 29 |
# File 'lib/coradoc/mirror/mark_reverse_builder.rb', line 27 def register(type, builder_class) REGISTRY[type] = builder_class end |
.registered_types ⇒ Object
35 36 37 |
# File 'lib/coradoc/mirror/mark_reverse_builder.rb', line 35 def registered_types REGISTRY.keys end |