Class: DecisionAgent::Dmn::GraphDotGenerator
- Inherits:
-
Object
- Object
- DecisionAgent::Dmn::GraphDotGenerator
- Defined in:
- lib/decision_agent/dmn/visualizer.rb
Overview
Generates DOT format for decision graphs
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(decision_graph) ⇒ GraphDotGenerator
constructor
A new instance of GraphDotGenerator.
Constructor Details
#initialize(decision_graph) ⇒ GraphDotGenerator
413 414 415 |
# File 'lib/decision_agent/dmn/visualizer.rb', line 413 def initialize(decision_graph) @graph = decision_graph end |
Instance Method Details
#generate ⇒ Object
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
# File 'lib/decision_agent/dmn/visualizer.rb', line 417 def generate dot = ["digraph decision_graph {"] dot << " graph [rankdir=TB];" dot << " node [shape=box, style=rounded];" @graph.decisions.each do |decision_id, decision| label = escape_dot("#{decision.name}\\n(#{decision_id})") dot << %( "#{decision_id}" [label="#{label}", fillcolor=lightyellow, style="rounded,filled"];) decision.information_requirements.each do |req| label = req[:variable_name] == req[:decision_id] ? "" : escape_dot(req[:variable_name]) label_attr = label.empty? ? "" : %( [label="#{label}"]) dot << %( "#{req[:decision_id]}" -> "#{decision_id}"#{label_attr};) end end dot << "}" dot.join("\n") end |