Class: ActiverecordCallbackLens::Renderer::MermaidRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord_callback_lens/renderer/mermaid_renderer.rb

Overview

Renders a Graph::Graph as a Mermaid ‘graph TD` (top-down) diagram string.

The output is a header line followed by one declaration per node and one arrow per edge:

graph TD
  n0["before_save"]
  n1["active?"]
  n1 --> n0

Node labels are derived from the node type (see #node_label) and are escaped so that quotes in a predicate or method name cannot break the surrounding Mermaid label syntax.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(graph) ⇒ MermaidRenderer

Returns a new instance of MermaidRenderer.

Parameters:



28
29
30
# File 'lib/activerecord_callback_lens/renderer/mermaid_renderer.rb', line 28

def initialize(graph)
  @graph = graph
end

Class Method Details

.render(graph) ⇒ String

Parameters:

Returns:

  • (String)


23
24
25
# File 'lib/activerecord_callback_lens/renderer/mermaid_renderer.rb', line 23

def self.render(graph)
  new(graph).render
end

Instance Method Details

#renderString

Returns:

  • (String)


33
34
35
36
37
38
# File 'lib/activerecord_callback_lens/renderer/mermaid_renderer.rb', line 33

def render
  lines = ["graph TD"]
  lines.concat(node_declarations)
  lines.concat(edge_declarations)
  lines.join("\n")
end