Class: Coradoc::Mirror::Transformer

Inherits:
Object
  • Object
show all
Defined in:
lib/coradoc/mirror/transformer.rb

Overview

Bidirectional facade for CoreModel ↔ Mirror transformation.

Delegates to CoreModelToMirror (forward) and MirrorToCoreModel (reverse).

Examples:

Forward transformation

transformer = Coradoc::Mirror::Transformer.new
mirror_doc = transformer.from_core_model(document)

Reverse transformation

core_doc = transformer.to_core_model(mirror_doc)

Instance Method Summary collapse

Constructor Details

#initialize(registry: Coradoc::Mirror.default_registry) ⇒ Transformer

Returns a new instance of Transformer.



17
18
19
# File 'lib/coradoc/mirror/transformer.rb', line 17

def initialize(registry: Coradoc::Mirror.default_registry)
  @registry = registry
end

Instance Method Details

#from_core_model(document, partition_structural: false) ⇒ Node::Document

Convert CoreModel document to Mirror node tree.

Parameters:

  • document (CoreModel::Base)

    CoreModel document

  • partition_structural (Boolean) (defaults to: false)

    wrap doc.content in preface/sections/bibliography containers per the @metanorma/mirror JS structural contract (default: false).

Returns:



28
29
30
# File 'lib/coradoc/mirror/transformer.rb', line 28

def from_core_model(document, partition_structural: false)
  CoreModelToMirror.new(registry: @registry).call(document, partition_structural: partition_structural)
end

#to_core_model(mirror_node) ⇒ CoreModel::Base

Convert Mirror node tree to CoreModel document.

Parameters:

  • mirror_node (Node)

    mirror document root

Returns:

  • (CoreModel::Base)

    CoreModel document



36
37
38
# File 'lib/coradoc/mirror/transformer.rb', line 36

def to_core_model(mirror_node)
  MirrorToCoreModel.new.call(mirror_node)
end