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_typesObject



35
36
37
# File 'lib/coradoc/mirror/mark_reverse_builder.rb', line 35

def registered_types
  REGISTRY.keys
end