Class: Mxrb::Uml::ClassDiagram
- Inherits:
-
Object
- Object
- Mxrb::Uml::ClassDiagram
- Defined in:
- lib/mxrb/uml/class_diagram.rb
Overview
Projects Mendix domain models as Mermaid and PlantUML class diagrams. rubocop:disable Metrics/AbcSize
Constant Summary collapse
- TYPES =
{ string: 'String', integer: 'Integer', long: 'Long', float: 'Float', decimal: 'Decimal', boolean: 'Boolean', datetime: 'DateTime', autonumber: 'AutoNumber', hashstring: 'HashedString', binary: 'Binary', enum: 'Enumeration' }.freeze
Instance Method Summary collapse
-
#initialize(modules) ⇒ ClassDiagram
constructor
A new instance of ClassDiagram.
- #to_mermaid ⇒ Object
- #to_plantuml ⇒ Object
Constructor Details
#initialize(modules) ⇒ ClassDiagram
Returns a new instance of ClassDiagram.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/mxrb/uml/class_diagram.rb', line 17 def initialize(modules) @modules = Array(modules) @entities = @modules.flat_map(&:entities) @module_by_entity = @modules.each_with_object({}) do |mod, result| mod.entities.each { result[_1.id.to_s] = mod.name.to_s } end @entity_by_key = @entities.each_with_object({}) do |entity, result| qualified = qualified_name(entity) result[entity.id.to_s] = entity result[qualified] = entity end end |
Instance Method Details
#to_mermaid ⇒ Object
30 31 32 33 34 35 |
# File 'lib/mxrb/uml/class_diagram.rb', line 30 def to_mermaid lines = ['classDiagram'] @entities.each { append_mermaid_class(lines, _1) } associations.each { lines << mermaid_association(_1) } "#{lines.join("\n")}\n" end |
#to_plantuml ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/mxrb/uml/class_diagram.rb', line 37 def to_plantuml lines = ['@startuml', 'hide empty methods'] @entities.each { append_plantuml_class(lines, _1) } associations.each { lines << plantuml_association(_1) } lines << '@enduml' "#{lines.join("\n")}\n" end |