Class: Metaschema::MarkdownDocGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/metaschema/markdown_doc_generator.rb

Overview

Generates human-readable Markdown documentation from a parsed Metaschema document.

Usage:

ms = Metaschema::Root.from_xml(File.read("metaschema.xml"))
markdown = MarkdownDocGenerator.generate(ms)
File.write("docs.md", markdown)

The generator walks the metaschema definition tree and emits Markdown with:

  • Schema title and version

  • Table of contents

  • Assembly, field, and flag definitions with descriptions

  • Property tables showing types, constraints, and cardinality

  • Examples from <example> elements

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metaschema) ⇒ MarkdownDocGenerator

Returns a new instance of MarkdownDocGenerator.



22
23
24
25
# File 'lib/metaschema/markdown_doc_generator.rb', line 22

def initialize(metaschema)
  @metaschema = metaschema
  @output = []
end

Class Method Details

.generate(metaschema) ⇒ Object



18
19
20
# File 'lib/metaschema/markdown_doc_generator.rb', line 18

def self.generate(metaschema)
  new(metaschema).generate
end

Instance Method Details

#generateObject



27
28
29
30
31
32
# File 'lib/metaschema/markdown_doc_generator.rb', line 27

def generate
  header
  table_of_contents
  definitions
  @output.join("\n")
end