Class: LcpRuby::Workflow::MermaidBuilder
- Inherits:
-
Object
- Object
- LcpRuby::Workflow::MermaidBuilder
- Defined in:
- lib/lcp_ruby/workflow/mermaid_builder.rb
Instance Method Summary collapse
- #build ⇒ Object
-
#build_for_palettes(*palettes) ⇒ Object
Build the diagram for multiple palettes at once, reusing the shared structure.
-
#initialize(workflow, current_state: nil, options: {}) ⇒ MermaidBuilder
constructor
A new instance of MermaidBuilder.
Constructor Details
#initialize(workflow, current_state: nil, options: {}) ⇒ MermaidBuilder
Returns a new instance of MermaidBuilder.
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/lcp_ruby/workflow/mermaid_builder.rb', line 4 def initialize(workflow, current_state: nil, options: {}) @workflow = workflow @current_state = current_state&.to_s @direction = .fetch("direction", "LR") @show_transition_labels = .fetch("show_transition_labels", true) @show_roles = .fetch("show_roles", false) @show_guards = .fetch("show_guards", false) @collapse_universal = .fetch("collapse_universal", true) @available_transitions = .fetch("available_transitions", nil) @palette = .fetch("palette", "light").to_sym @audit_index = build_audit_index(.fetch("audit_trail", nil)) end |
Instance Method Details
#build ⇒ Object
17 18 19 20 |
# File 'lib/lcp_ruby/workflow/mermaid_builder.rb', line 17 def build structure = build_structure (structure + build_class_defs(@palette)).join("\n") end |
#build_for_palettes(*palettes) ⇒ Object
Build the diagram for multiple palettes at once, reusing the shared structure. Returns an array of Mermaid code strings, one per palette.
24 25 26 27 |
# File 'lib/lcp_ruby/workflow/mermaid_builder.rb', line 24 def build_for_palettes(*palettes) structure = build_structure palettes.map { |p| (structure + build_class_defs(p.to_sym)).join("\n") } end |