Class: Lutaml::Xsd::Spa::Svg::DiagramGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/xsd/spa/svg/diagram_generator.rb

Overview

Main orchestrator for SVG diagram generation Coordinates layout, rendering, and document assembly

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema_name, config = nil) ⇒ DiagramGenerator

Returns a new instance of DiagramGenerator.



23
24
25
26
27
28
29
30
# File 'lib/lutaml/xsd/spa/svg/diagram_generator.rb', line 23

def initialize(schema_name, config = nil)
  @schema_name = schema_name
  @config = config || StyleConfiguration.load
  @layout_engine = LayoutEngine.for(@config)
  @document_builder = DocumentBuilder.new(@config)
  @renderers = build_renderers
  @connectors = build_connectors
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



21
22
23
# File 'lib/lutaml/xsd/spa/svg/diagram_generator.rb', line 21

def config
  @config
end

#schema_nameObject (readonly)

Returns the value of attribute schema_name.



21
22
23
# File 'lib/lutaml/xsd/spa/svg/diagram_generator.rb', line 21

def schema_name
  @schema_name
end

Instance Method Details

#generate_element_diagram(element_data) ⇒ Object

Generates SVG diagram for an element



33
34
35
# File 'lib/lutaml/xsd/spa/svg/diagram_generator.rb', line 33

def generate_element_diagram(element_data)
  generate_diagram(element_data, :element)
end

#generate_type_diagram(type_data) ⇒ Object

Generates SVG diagram for a type



38
39
40
# File 'lib/lutaml/xsd/spa/svg/diagram_generator.rb', line 38

def generate_type_diagram(type_data)
  generate_diagram(type_data, :type)
end