Class: RailsERD::Diagram::Mermaid
Instance Attribute Summary collapse
#domain, #options
Instance Method Summary
collapse
create, #create, #generate, #initialize, #recurse_into_relationships, #save
Instance Attribute Details
#graph ⇒ Object
Returns the value of attribute graph.
10
11
12
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 10
def graph
@graph
end
|
Instance Method Details
#arrow_body(relationship) ⇒ Object
138
139
140
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 138
def arrow_body(relationship)
relationship.indirect? ? ".." : "--"
end
|
#arrow_head(relationship) ⇒ Object
142
143
144
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 142
def arrow_head(relationship)
relationship.to_many? ? ">" : ""
end
|
#arrow_tail(relationship) ⇒ Object
146
147
148
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 146
def arrow_tail(relationship)
relationship.many_to? ? "<" : ""
end
|
#attribute_key_marker(attr) ⇒ Object
122
123
124
125
126
127
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 122
def attribute_key_marker(attr)
markers = []
markers << "PK" if attr.primary_key?
markers << "FK" if attr.foreign_key?
markers.empty? ? "" : " #{markers.join(',')}"
end
|
#diagram_type ⇒ Object
87
88
89
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 87
def diagram_type
er_diagram? ? "erDiagram" : "classDiagram"
end
|
#er_diagram? ⇒ Boolean
91
92
93
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 91
def er_diagram?
options[:mermaid_style] == :erdiagram || options[:mermaid_style] == :er
end
|
#er_relation_notation(relationship) ⇒ Object
erDiagram relationship notation using crow’s foot Format: left_cardinality–right_cardinality Cardinality markers:
|| = exactly one
o| = zero or one
}| = one or more
}o = zero or more
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 102
def er_relation_notation(relationship)
line = relationship.indirect? ? ".." : "--"
left = if relationship.many_to?
relationship.source_optional? ? "o{" : "|{"
else
relationship.source_optional? ? "o|" : "||"
end
right = if relationship.to_many?
relationship.destination_optional? ? "}o" : "}|"
else
relationship.destination_optional? ? "|o" : "||"
end
"#{left}#{line}#{right}"
end
|
#filename ⇒ Object
83
84
85
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 83
def filename
"#{options.filename}.mmd"
end
|
#relation_arrow(relationship) ⇒ Object
classDiagram relationship arrows (legacy)
130
131
132
133
134
135
136
|
# File 'lib/rails_erd/diagram/mermaid.rb', line 130
def relation_arrow(relationship)
arrow_body = arrow_body relationship
arrow_head = arrow_head relationship
arrow_tail = arrow_tail relationship
"#{arrow_tail}#{arrow_body}#{arrow_head}"
end
|