Class: Dbwatcher::Services::MermaidSyntax::CardinalityMapper
- Inherits:
-
Object
- Object
- Dbwatcher::Services::MermaidSyntax::CardinalityMapper
- Defined in:
- lib/dbwatcher/services/mermaid_syntax/cardinality_mapper.rb
Overview
Maps relationship cardinality to Mermaid syntax
Provides mapping from internal cardinality representation to specific Mermaid diagram syntax for different diagram types.
Constant Summary collapse
- DEFAULT_ERD =
Default cardinality notation
"||--o{"
- DEFAULT_CLASS =
Default to one-to-many
"1..*"
- DEFAULT_SIMPLE =
Default to one-to-many
"1:N"
- ERD_NOTATIONS =
Lookup tables for different cardinality notations
{ "one_to_many" => "||--o{", "one_to_zero_or_many" => "||--o{", "many_to_one" => "}o--||", "one_to_one" => "||--||", "many_to_many" => "}o--o{", "zero_or_one_to_many" => "|o--o{", "zero_or_one_to_one" => "|o--||", "one_to_zero_or_one" => "||--|o" }.freeze
- CLASS_NOTATIONS =
{ "one_to_many" => "1..*", "many_to_one" => "*..*", "many_to_many" => "*..*", "one_to_one" => "1..1", "zero_or_one_to_many" => "0..1..*", "one_to_zero_or_many" => "1..0..*", "zero_or_one_to_one" => "0..1..1", "one_to_zero_or_one" => "1..0..1" }.freeze
- SIMPLE_NOTATIONS =
{ "one_to_many" => "1:N", "many_to_one" => "N:1", "one_to_one" => "1:1", "many_to_many" => "N:N", "zero_or_one_to_many" => "0,1:N", "one_to_zero_or_many" => "1:0,N", "zero_or_one_to_one" => "0,1:1", "one_to_zero_or_one" => "1:0,1" }.freeze
Class Method Summary collapse
-
.to_class(cardinality, format = :standard) ⇒ String
Map cardinality to class diagram syntax.
-
.to_erd(cardinality, _format = :standard) ⇒ String
Map cardinality to ERD diagram syntax.
-
.to_simple(cardinality, _format = :standard) ⇒ String
Map cardinality to simple text format.
Class Method Details
.to_class(cardinality, format = :standard) ⇒ String
Map cardinality to class diagram syntax
72 73 74 75 76 |
# File 'lib/dbwatcher/services/mermaid_syntax/cardinality_mapper.rb', line 72 def to_class(cardinality, format = :standard) return to_simple(cardinality) if format == :simple CLASS_NOTATIONS[cardinality.to_s] || DEFAULT_CLASS end |
.to_erd(cardinality, _format = :standard) ⇒ String
Map cardinality to ERD diagram syntax
61 62 63 64 65 |
# File 'lib/dbwatcher/services/mermaid_syntax/cardinality_mapper.rb', line 61 def to_erd(cardinality, _format = :standard) # ERD format doesn't change based on format parameter # It always uses the standard Mermaid ERD notation ERD_NOTATIONS[cardinality.to_s] || DEFAULT_ERD end |
.to_simple(cardinality, _format = :standard) ⇒ String
Map cardinality to simple text format
83 84 85 |
# File 'lib/dbwatcher/services/mermaid_syntax/cardinality_mapper.rb', line 83 def to_simple(cardinality, _format = :standard) SIMPLE_NOTATIONS[cardinality.to_s] || DEFAULT_SIMPLE end |