Class: Lagoon::Renderer::ClassDiagramRenderer

Inherits:
BaseRenderer
  • Object
show all
Defined in:
lib/lagoon/renderer/class_diagram_renderer.rb

Instance Attribute Summary

Attributes inherited from BaseRenderer

#direction

Instance Method Summary collapse

Constructor Details

#initialize(direction: 'TB', show_types: true) ⇒ ClassDiagramRenderer

Returns a new instance of ClassDiagramRenderer.



6
7
8
9
# File 'lib/lagoon/renderer/class_diagram_renderer.rb', line 6

def initialize(direction: 'TB', show_types: true)
  super(direction: direction)
  @show_types = show_types
end

Instance Method Details

#render(parsed_data) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/lagoon/renderer/class_diagram_renderer.rb', line 11

def render(parsed_data)
  output = ['classDiagram']
  output << "    direction #{@direction}"
  output << ''

  classes = parsed_data.fetch(:classes, []).select { |klass| klass[:name] }
  classes.sort_by { |klass| klass[:name].to_s }.each do |klass|
    output << render_class(klass)
    output << ''
  end

  relationships = parsed_data.fetch(:relationships, []).select { |rel| rel[:source] && rel[:target] }
  relationships.sort_by { |rel| relationship_sort_key(rel) }.each do |rel|
    output << render_relationship(rel)
  end

  output.join("\n").rstrip
end