Class: DecisionAgent::Dmn::GraphMermaidGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/decision_agent/dmn/visualizer.rb

Overview

Generates Mermaid diagram syntax for decision graphs

Instance Method Summary collapse

Constructor Details

#initialize(decision_graph) ⇒ GraphMermaidGenerator

Returns a new instance of GraphMermaidGenerator.



487
488
489
# File 'lib/decision_agent/dmn/visualizer.rb', line 487

def initialize(decision_graph)
  @graph = decision_graph
end

Instance Method Details

#generateObject



491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
# File 'lib/decision_agent/dmn/visualizer.rb', line 491

def generate
  mermaid = ["graph TD"]

  @graph.decisions.each do |decision_id, decision|
    label = escape_mermaid(decision.name.to_s)
    mermaid << %(  #{decision_id}["#{label}"])

    decision.information_requirements.each do |req|
      label = req[:variable_name] == req[:decision_id] ? "" : "|#{escape_mermaid(req[:variable_name])}|"
      mermaid << %(  #{req[:decision_id]} -->#{label} #{decision_id})
    end
  end

  mermaid.join("\n")
end