Class: ActiverecordCallbackLens::Renderer::MermaidRenderer
- Inherits:
-
Object
- Object
- ActiverecordCallbackLens::Renderer::MermaidRenderer
- 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
-
#initialize(graph) ⇒ MermaidRenderer
constructor
A new instance of MermaidRenderer.
- #render ⇒ String
Constructor Details
#initialize(graph) ⇒ MermaidRenderer
Returns a new instance of MermaidRenderer.
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
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
#render ⇒ 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 |