Class: LcpRuby::Metadata::ErdGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/metadata/erd_generator.rb

Overview

Generates Entity-Relationship Diagrams from loaded model definitions.

Supported output formats:

- :mermaid  — Mermaid.js syntax (renders in GitHub markdown, Mermaid Live Editor)
- :dot      — Graphviz DOT language (export to PNG/SVG via `dot -Tpng`)
- :plantuml — PlantUML syntax (renders via PlantUML server or CLI)

Usage:

generator = ErdGenerator.new(loader)
puts generator.generate(:mermaid)
File.write("erd.dot", generator.generate(:dot))

Constant Summary collapse

SUPPORTED_FORMATS =
%i[mermaid dot plantuml].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loader) ⇒ ErdGenerator

Returns a new instance of ErdGenerator.



19
20
21
# File 'lib/lcp_ruby/metadata/erd_generator.rb', line 19

def initialize(loader)
  @loader = loader
end

Instance Attribute Details

#loaderObject (readonly)

Returns the value of attribute loader.



17
18
19
# File 'lib/lcp_ruby/metadata/erd_generator.rb', line 17

def loader
  @loader
end

Instance Method Details

#generate(format = :mermaid) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/lcp_ruby/metadata/erd_generator.rb', line 23

def generate(format = :mermaid)
  format = format.to_sym
  unless SUPPORTED_FORMATS.include?(format)
    raise ArgumentError,
      "Unsupported format '#{format}'. Supported: #{SUPPORTED_FORMATS.join(', ')}"
  end

  send(:"generate_#{format}")
end