Class: Mxrb::Uml::ActivityDiagram

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/uml/activity_diagram.rb

Overview

Renders the native object/sequence-flow graph of one Mendix microflow. rubocop:disable Metrics

Instance Method Summary collapse

Constructor Details

#initialize(microflow) ⇒ ActivityDiagram

Returns a new instance of ActivityDiagram.



10
11
12
13
14
15
# File 'lib/mxrb/uml/activity_diagram.rb', line 10

def initialize(microflow)
  @microflow = microflow
  @objects = Array(microflow.objects)
  @flows = Array(microflow.flows)
  @objects_by_id = @objects.to_h { [raw_object_id(_1), _1] }
end

Instance Method Details

#to_mermaidObject



17
18
19
20
21
22
23
24
25
# File 'lib/mxrb/uml/activity_diagram.rb', line 17

def to_mermaid
  lines = ['flowchart TD']
  @objects.each { lines << "  #{mermaid_node(_1)}" }
  @flows.each do |flow|
    line = flow_line(flow, :mermaid)
    lines << "  #{line}" if line
  end
  "#{lines.join("\n")}\n"
end

#to_plantumlObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/mxrb/uml/activity_diagram.rb', line 27

def to_plantuml
  lines = ['@startuml', "title #{Support.plantuml_text(@microflow.name)}"]
  @objects.each { lines << plantuml_node(_1) }
  @flows.each do |flow|
    line = flow_line(flow, :plantuml)
    lines << line if line
  end
  lines << '@enduml'
  "#{lines.join("\n")}\n"
end