mermaid 0.0.2 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +6 -6
- data/lib/mermaid/element_renderers/edge_renderer.rb +1 -1
- data/lib/mermaid/element_renderers/erd_entity_renderer.rb +37 -0
- data/lib/mermaid/element_renderers/erd_relationship_renderer.rb +44 -0
- data/lib/mermaid/element_renderers/node_renderer.rb +1 -1
- data/lib/mermaid/element_renderers/relationship_renderer.rb +1 -1
- data/lib/mermaid/element_renderers/slice_renderer.rb +1 -1
- data/lib/mermaid/element_renderers/state_renderer.rb +1 -1
- data/lib/mermaid/element_renderers/task_renderer.rb +2 -2
- data/lib/mermaid/er_diagram_renderer.rb +24 -0
- data/lib/mermaid/gantt_diagram_renderer.rb +6 -2
- data/lib/mermaid/version.rb +1 -1
- data/lib/mermaid.rb +11 -3
- data/sig/diagrams/base.rbs +1 -1
- data/sig/diagrams/class_diagram.rbs +1 -1
- data/sig/diagrams/elements/edge.rbs +3 -3
- data/sig/diagrams/elements/erd_entity.rbs +11 -0
- data/sig/diagrams/elements/erd_relationship.rbs +11 -0
- data/sig/diagrams/elements/node.rbs +3 -3
- data/sig/diagrams/elements/relationship.rbs +2 -4
- data/sig/diagrams/elements/slice.rbs +3 -3
- data/sig/diagrams/elements/state.rbs +3 -3
- data/sig/diagrams/elements/task.rbs +3 -3
- data/sig/diagrams/elements/transition.rbs +3 -3
- data/sig/diagrams/er_diagram.rbs +9 -0
- data/sig/diagrams/flowchart_diagram.rbs +1 -1
- data/sig/diagrams/gantt_diagram.rbs +1 -1
- data/sig/diagrams/pie_diagram.rbs +1 -1
- data/sig/diagrams/state_diagram.rbs +1 -1
- metadata +11 -7
- data/sig/mermaid/base_diagram.rbs +0 -31
- data/sig/mermaid/state_diagram.rbs +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82eb20d2315cbe0cf01d624664b573947d891b7f142d531a47805531724232b1
|
4
|
+
data.tar.gz: '02801805d9f7361fd32e575f0db38cfcafbcf92a542c47eae9990c554c2d1924'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 471e35230eeab9df0e9dd6bb4d42bdfc386027af84defb2e20a2b3ca4b0244fa68dc30090a2a5480e06279e94862a58daaa954eaeafca22ffda9abb65932a85a
|
7
|
+
data.tar.gz: 06bc39252e24a72bec57c1566876921010d1319ee171571d61d8acc1ec499038d70dc311201ad6702d8ef45372f10b3d415eb66251f08777a773d429ca92140e
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,34 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.0.6](https://github.com/seuros/mermaid-ruby/compare/mermaid/v0.0.5...mermaid/v0.0.6) (2025-08-14)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* conform to mermaid standard syntax. This will allow user to gene… ([9081725](https://github.com/seuros/mermaid-ruby/commit/90817257b7b7a8bab28b1aff250ee5ac83eaa85c))
|
9
|
+
* conform to mermaid standard syntax. This will allow user to generate ERD compatible with Github ([f6574b5](https://github.com/seuros/mermaid-ruby/commit/f6574b54f959f15e9d37f88709fe21b77987293a))
|
10
|
+
|
11
|
+
## [0.0.5](https://github.com/seuros/mermaid-ruby/compare/mermaid/v0.0.4...mermaid/v0.0.5) (2025-07-11)
|
12
|
+
|
13
|
+
|
14
|
+
### Bug Fixes
|
15
|
+
|
16
|
+
* eager load the gem ([9f10fff](https://github.com/seuros/mermaid-ruby/commit/9f10fff38d6b2edb59a28a6611948d97ca6e5e6e))
|
17
|
+
|
18
|
+
## [0.0.4](https://github.com/seuros/mermaid-ruby/compare/mermaid/v0.0.3...mermaid/v0.0.4) (2025-05-20)
|
19
|
+
|
20
|
+
|
21
|
+
### Bug Fixes
|
22
|
+
|
23
|
+
* documentation update ([429bb89](https://github.com/seuros/mermaid-ruby/commit/429bb899a2041392d2ad3ea6f93e9fa0cb6290b6))
|
24
|
+
|
25
|
+
## [0.0.3](https://github.com/seuros/mermaid-ruby/compare/mermaid/v0.0.2...mermaid/v0.0.3) (2025-04-01)
|
26
|
+
|
27
|
+
|
28
|
+
### Features
|
29
|
+
|
30
|
+
* add ERD diagram representation ([8d081d4](https://github.com/seuros/mermaid-ruby/commit/8d081d44491d64a63c6ca850b22b01d6e456311d))
|
31
|
+
|
3
32
|
## 0.0.2 (2025-04-01)
|
4
33
|
|
5
34
|
|
data/README.md
CHANGED
@@ -110,17 +110,17 @@ puts pie_chart.to_mermaid
|
|
110
110
|
# "Play" : 8
|
111
111
|
|
112
112
|
# --- Example: Gantt Chart ---
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
gantt_chart = Diagrams::GanttDiagram.new(title: 'Project Timeline', tasks: [task1, task2])
|
113
|
+
gantt_chart = Diagrams::GanttDiagram.new(title: 'Project Timeline')
|
114
|
+
gantt_chart.add_task(id: 't1', label: 'Phase 1', start: '2024-01-01', duration: '10d')
|
115
|
+
gantt_chart.add_task(id: 't2', label: 'Phase 2', start: '2024-01-11', duration: '10d')
|
117
116
|
|
118
117
|
puts gantt_chart.to_mermaid
|
119
118
|
# Output:
|
120
119
|
# gantt
|
121
120
|
# title Project Timeline
|
122
|
-
#
|
123
|
-
#
|
121
|
+
# section Default Section
|
122
|
+
# Phase 1 :t1, 2024-01-01, 10d
|
123
|
+
# Phase 2 :t2, 2024-01-11, 10d
|
124
124
|
|
125
125
|
```
|
126
126
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::Edge
|
6
6
|
module EdgeRenderer
|
7
7
|
# @!method to_mermaid_fragment
|
8
8
|
# Generates the Mermaid fragment for a flowchart edge.
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mermaid
|
4
|
+
module ElementRenderers
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::ERDEntity
|
6
|
+
module ERDEntityRenderer
|
7
|
+
# Generates the Mermaid fragment for this entity.
|
8
|
+
# @return [String] The Mermaid syntax fragment for the entity.
|
9
|
+
def to_mermaid_fragment
|
10
|
+
fragment = "\"#{name}\" {\n"
|
11
|
+
entity_attributes.each do |attr|
|
12
|
+
fragment << " #{attr.type} #{attr.name}"
|
13
|
+
|
14
|
+
# Separate Mermaid-native constraints from comment-only constraints
|
15
|
+
unless attr.keys.empty?
|
16
|
+
native_keys = attr.keys.select { |key| %i[PK FK].include?(key) }
|
17
|
+
comment_keys = attr.keys.select { |key| [:UK].include?(key) }
|
18
|
+
|
19
|
+
# Add native keys first
|
20
|
+
fragment << " #{native_keys.join(' ')}" unless native_keys.empty?
|
21
|
+
|
22
|
+
# Quote UK as comment to mark it as comment
|
23
|
+
comment_keys.each do |key|
|
24
|
+
fragment << " \"#{key}\""
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Add explicit comment if present
|
29
|
+
fragment << " \"#{attr.comment}\"" if attr.comment && !attr.comment.empty?
|
30
|
+
fragment << "\n"
|
31
|
+
end
|
32
|
+
fragment << "}\n"
|
33
|
+
fragment
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mermaid
|
4
|
+
module ElementRenderers
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::ERDRelationship
|
6
|
+
module ERDRelationshipRenderer
|
7
|
+
# Maps cardinality symbols from Diagrams::ElementRenderers::ERDRelationship::CARDINALITY
|
8
|
+
# to Mermaid syntax (using right-side convention).
|
9
|
+
CARDINALITY_MAP = {
|
10
|
+
ZERO_OR_ONE: 'o|',
|
11
|
+
ONE_ONLY: '||',
|
12
|
+
ZERO_OR_MORE: 'o{', # Corrected based on Mermaid docs
|
13
|
+
ONE_OR_MORE: '|{' # Corrected based on Mermaid docs
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
# Generates the Mermaid fragment for this relationship.
|
17
|
+
# @return [String] The Mermaid syntax fragment for the relationship.
|
18
|
+
def to_mermaid_fragment
|
19
|
+
# Fetch symbols, raise error if invalid key (shouldn't happen if Diagrams gem validates)
|
20
|
+
left_symbol_raw = CARDINALITY_MAP.fetch(cardinality1)
|
21
|
+
right_symbol = CARDINALITY_MAP.fetch(cardinality2)
|
22
|
+
|
23
|
+
# Generate the left symbol by mirroring the right-side convention
|
24
|
+
left_symbol = case left_symbol_raw
|
25
|
+
when 'o{' then '}o' # Mirror zero or more
|
26
|
+
when '|{' then '}|' # Mirror one or more
|
27
|
+
else left_symbol_raw.reverse # Simple reverse for |o and ||
|
28
|
+
end
|
29
|
+
|
30
|
+
# Always use '--' based on user feedback for compatibility
|
31
|
+
id_symbol = '--'
|
32
|
+
|
33
|
+
fragment = "\"#{entity1}\" "
|
34
|
+
fragment << left_symbol # e.g., |o
|
35
|
+
fragment << id_symbol # e.g., --
|
36
|
+
fragment << right_symbol # e.g., }|
|
37
|
+
fragment << " \"#{entity2}\""
|
38
|
+
fragment << " : \"#{label}\"" if label && !label.strip.empty?
|
39
|
+
fragment << "\n"
|
40
|
+
fragment
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::Node
|
6
6
|
module NodeRenderer
|
7
7
|
# @!method to_mermaid_fragment
|
8
8
|
# Generates the Mermaid fragment for a flowchart node.
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::Relationship
|
6
6
|
module RelationshipRenderer
|
7
7
|
# Maps relationship type strings to Mermaid symbols
|
8
8
|
MERMAID_RELATIONSHIP_MAP = {
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::Slice
|
6
6
|
module SliceRenderer
|
7
7
|
# @!method to_mermaid_fragment
|
8
8
|
# Generates the Mermaid fragment for a pie chart slice.
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::State
|
6
6
|
module StateRenderer
|
7
7
|
# @!method to_mermaid_fragment
|
8
8
|
# Generates the Mermaid fragment for a state definition.
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
module Mermaid
|
4
4
|
module ElementRenderers
|
5
|
-
# Module containing Mermaid rendering logic for Diagrams::
|
5
|
+
# Module containing Mermaid rendering logic for Diagrams::ElementRenderers::Task
|
6
6
|
module TaskRenderer
|
7
7
|
# @!method to_mermaid_fragment
|
8
8
|
# Generates the Mermaid fragment for a Gantt task.
|
9
9
|
# @return [String] Mermaid syntax fragment.
|
10
10
|
def to_mermaid_fragment
|
11
|
-
"#{
|
11
|
+
"#{label} :#{id}, #{start}, #{duration}"
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mermaid
|
4
|
+
# Module containing Mermaid rendering logic for ER Diagrams
|
5
|
+
module ERDiagramRenderer
|
6
|
+
# Generates the Mermaid syntax for the ER diagram.
|
7
|
+
# Prepended to Diagrams::ERDiagram.
|
8
|
+
# @return [String] The Mermaid syntax string.
|
9
|
+
def to_mermaid
|
10
|
+
mermaid_string = +"erDiagram\n"
|
11
|
+
|
12
|
+
# Diagrams::ERDiagram stores entities in a hash, access values
|
13
|
+
entities.each_value do |entity|
|
14
|
+
mermaid_string << entity.to_mermaid_fragment
|
15
|
+
end
|
16
|
+
|
17
|
+
relationships.each do |rel|
|
18
|
+
mermaid_string << rel.to_mermaid_fragment
|
19
|
+
end
|
20
|
+
|
21
|
+
mermaid_string.strip
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -8,8 +8,12 @@ module Mermaid
|
|
8
8
|
# @return [String] The Mermaid syntax string.
|
9
9
|
def to_mermaid
|
10
10
|
mermaid_string = +"gantt\n"
|
11
|
-
mermaid_string << "title #{
|
12
|
-
|
11
|
+
mermaid_string << "title #{title}\n" if title && !title.empty?
|
12
|
+
sections.each do |section|
|
13
|
+
# Always add section title
|
14
|
+
mermaid_string << "section #{section.title}\n"
|
15
|
+
section.tasks&.each { |task| mermaid_string << task.to_mermaid_fragment << "\n" }
|
16
|
+
end
|
13
17
|
mermaid_string.strip
|
14
18
|
end
|
15
19
|
end
|
data/lib/mermaid/version.rb
CHANGED
data/lib/mermaid.rb
CHANGED
@@ -3,8 +3,14 @@
|
|
3
3
|
require_relative 'mermaid/version'
|
4
4
|
require 'diagrams'
|
5
5
|
|
6
|
-
loader = Zeitwerk::Loader.for_gem
|
6
|
+
loader = Zeitwerk::Loader.for_gem
|
7
|
+
loader.inflector.inflect(
|
8
|
+
'er_diagram_renderer' => 'ERDiagramRenderer',
|
9
|
+
'erd_entity_renderer' => 'ERDEntityRenderer',
|
10
|
+
'erd_relationship_renderer' => 'ERDRelationshipRenderer'
|
11
|
+
)
|
7
12
|
loader.setup
|
13
|
+
loader.eager_load
|
8
14
|
|
9
15
|
module Diagrams
|
10
16
|
StateDiagram.prepend(Mermaid::StateDiagramRenderer)
|
@@ -13,7 +19,8 @@ module Diagrams
|
|
13
19
|
PieDiagram.prepend(Mermaid::PieDiagramRenderer)
|
14
20
|
GanttDiagram.prepend(Mermaid::GanttDiagramRenderer)
|
15
21
|
GitgraphDiagram.prepend(Mermaid::GitgraphDiagramRenderer)
|
16
|
-
TimelineDiagram.prepend(Mermaid::TimelineDiagramRenderer)
|
22
|
+
TimelineDiagram.prepend(Mermaid::TimelineDiagramRenderer)
|
23
|
+
ERDiagram.prepend(Mermaid::ERDiagramRenderer)
|
17
24
|
module Elements
|
18
25
|
State.prepend(Mermaid::ElementRenderers::StateRenderer)
|
19
26
|
Transition.prepend(Mermaid::ElementRenderers::TransitionRenderer)
|
@@ -22,6 +29,7 @@ module Diagrams
|
|
22
29
|
Edge.prepend(Mermaid::ElementRenderers::EdgeRenderer)
|
23
30
|
Slice.prepend(Mermaid::ElementRenderers::SliceRenderer)
|
24
31
|
Task.prepend(Mermaid::ElementRenderers::TaskRenderer)
|
25
|
-
#
|
32
|
+
ERDEntity.prepend(Mermaid::ElementRenderers::ERDEntityRenderer) # Prepend ERD element renderers
|
33
|
+
ERDRelationship.prepend(Mermaid::ElementRenderers::ERDRelationshipRenderer)
|
26
34
|
end
|
27
35
|
end
|
data/sig/diagrams/base.rbs
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Edge element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Edge
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class Edge
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a flowchart edge.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Augmenting the class from the 'diagrams' gem
|
2
|
+
module Diagrams
|
3
|
+
module Element
|
4
|
+
class ERDEntity
|
5
|
+
# Method added by prepending Mermaid::Element::ERDEntityRenderer
|
6
|
+
# Generates the Mermaid fragment for this entity.
|
7
|
+
# @return [String] The Mermaid syntax fragment for the entity.
|
8
|
+
def to_mermaid_fragment: () -> String
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Augmenting the class from the 'diagrams' gem
|
2
|
+
module Diagrams
|
3
|
+
module Element
|
4
|
+
class ERDRelationship
|
5
|
+
# Method added by prepending Mermaid::Element::ERDRelationshipRenderer
|
6
|
+
# Generates the Mermaid fragment for this relationship.
|
7
|
+
# @return [String] The Mermaid syntax fragment for the relationship.
|
8
|
+
def to_mermaid_fragment: () -> String
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Node element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Node
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class Node
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a flowchart node.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Relationship element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Relationship
|
5
|
-
# Added by mermaid-ruby gem
|
6
|
-
# Generates the Mermaid fragment for a relationship.
|
3
|
+
module Element
|
4
|
+
class Relationship
|
7
5
|
def to_mermaid_fragment: () -> String
|
8
6
|
|
9
7
|
# Original attributes/methods (if known/needed)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Slice element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Slice
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class Slice
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a pie chart slice.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's State element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class State
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class State
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a state definition.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Task element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Task
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class Task
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a Gantt task.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# RBS signatures for patches applied to the 'diagram' gem's Transition element class
|
2
2
|
module Diagrams
|
3
|
-
module
|
4
|
-
class Transition
|
5
|
-
|
3
|
+
module Element
|
4
|
+
class Transition
|
5
|
+
|
6
6
|
# Generates the Mermaid fragment for a transition.
|
7
7
|
def to_mermaid_fragment: () -> String
|
8
8
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# Augmenting the class from the 'diagrams' gem
|
2
|
+
module Diagrams
|
3
|
+
class ERDiagram < Base
|
4
|
+
# Method added by prepending Mermaid::ERDiagramRenderer
|
5
|
+
# Generates the Mermaid syntax for the ER diagram.
|
6
|
+
# @return [String] The Mermaid syntax string.
|
7
|
+
def to_mermaid: () -> String
|
8
|
+
end
|
9
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mermaid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: diagram
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.3.
|
18
|
+
version: 0.3.4
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.3.
|
25
|
+
version: 0.3.4
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: zeitwerk
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,12 +191,15 @@ files:
|
|
191
191
|
- lib/mermaid.rb
|
192
192
|
- lib/mermaid/class_diagram_renderer.rb
|
193
193
|
- lib/mermaid/element_renderers/edge_renderer.rb
|
194
|
+
- lib/mermaid/element_renderers/erd_entity_renderer.rb
|
195
|
+
- lib/mermaid/element_renderers/erd_relationship_renderer.rb
|
194
196
|
- lib/mermaid/element_renderers/node_renderer.rb
|
195
197
|
- lib/mermaid/element_renderers/relationship_renderer.rb
|
196
198
|
- lib/mermaid/element_renderers/slice_renderer.rb
|
197
199
|
- lib/mermaid/element_renderers/state_renderer.rb
|
198
200
|
- lib/mermaid/element_renderers/task_renderer.rb
|
199
201
|
- lib/mermaid/element_renderers/transition_renderer.rb
|
202
|
+
- lib/mermaid/er_diagram_renderer.rb
|
200
203
|
- lib/mermaid/flowchart_diagram_renderer.rb
|
201
204
|
- lib/mermaid/gantt_diagram_renderer.rb
|
202
205
|
- lib/mermaid/gitgraph_diagram_renderer.rb
|
@@ -207,18 +210,19 @@ files:
|
|
207
210
|
- sig/diagrams/base.rbs
|
208
211
|
- sig/diagrams/class_diagram.rbs
|
209
212
|
- sig/diagrams/elements/edge.rbs
|
213
|
+
- sig/diagrams/elements/erd_entity.rbs
|
214
|
+
- sig/diagrams/elements/erd_relationship.rbs
|
210
215
|
- sig/diagrams/elements/node.rbs
|
211
216
|
- sig/diagrams/elements/relationship.rbs
|
212
217
|
- sig/diagrams/elements/slice.rbs
|
213
218
|
- sig/diagrams/elements/state.rbs
|
214
219
|
- sig/diagrams/elements/task.rbs
|
215
220
|
- sig/diagrams/elements/transition.rbs
|
221
|
+
- sig/diagrams/er_diagram.rbs
|
216
222
|
- sig/diagrams/flowchart_diagram.rbs
|
217
223
|
- sig/diagrams/gantt_diagram.rbs
|
218
224
|
- sig/diagrams/pie_diagram.rbs
|
219
225
|
- sig/diagrams/state_diagram.rbs
|
220
|
-
- sig/mermaid/base_diagram.rbs
|
221
|
-
- sig/mermaid/state_diagram.rbs
|
222
226
|
homepage: https://github.com/seuros/mermaid-ruby
|
223
227
|
licenses:
|
224
228
|
- MIT
|
@@ -241,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
241
245
|
- !ruby/object:Gem::Version
|
242
246
|
version: '0'
|
243
247
|
requirements: []
|
244
|
-
rubygems_version: 3.6.
|
248
|
+
rubygems_version: 3.6.9
|
245
249
|
specification_version: 4
|
246
250
|
summary: Generate Diagrams and Flowcharts with Mermaid
|
247
251
|
test_files: []
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module Mermaid
|
2
|
-
# Abstract base class for all diagram types.
|
3
|
-
# Subclasses should inherit from this and implement required methods.
|
4
|
-
class BaseDiagram < ::Dry::Struct
|
5
|
-
# Placeholder for Dry.Types module if needed within RBS
|
6
|
-
module Types
|
7
|
-
# Define types used in attributes if necessary
|
8
|
-
end
|
9
|
-
|
10
|
-
# Converts the diagram's specific data to a hash.
|
11
|
-
# Subclasses must implement this.
|
12
|
-
# @raise [NotImplementedError]
|
13
|
-
# @return [Hash]
|
14
|
-
def to_hash: () -> Hash[untyped, untyped]
|
15
|
-
|
16
|
-
# Generates the Mermaid syntax representation of the diagram.
|
17
|
-
# Subclasses must override this method.
|
18
|
-
# @raise [NotImplementedError]
|
19
|
-
# @return [String]
|
20
|
-
def to_mermaid: () -> String
|
21
|
-
|
22
|
-
# Generates the Mermaid syntax representation.
|
23
|
-
# @deprecated Use #to_mermaid instead.
|
24
|
-
# @return [String]
|
25
|
-
def to_s: () -> String
|
26
|
-
|
27
|
-
# Potentially add `generate` if it was meant to be public,
|
28
|
-
# otherwise assume it's an internal detail called by `to_s`/`to_mermaid`.
|
29
|
-
# def generate: () -> String
|
30
|
-
end
|
31
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Mermaid
|
2
|
-
class StateDiagram < BaseDiagram
|
3
|
-
KEYWORD: String
|
4
|
-
|
5
|
-
# Define types for attributes if not already globally available
|
6
|
-
# Assuming State and Transition types are defined elsewhere or inferred
|
7
|
-
# If State and Transition have their own RBS files, they should be referenced.
|
8
|
-
# Example:
|
9
|
-
# type state = StateDiagram::State
|
10
|
-
# type transition = StateDiagram::Transition
|
11
|
-
|
12
|
-
attr_reader id: String
|
13
|
-
attr_reader states: Array[StateDiagram::State] # Assuming State is defined
|
14
|
-
attr_reader transitions: Array[StateDiagram::Transition] # Assuming Transition is defined
|
15
|
-
|
16
|
-
# @deprecated Use #to_mermaid instead.
|
17
|
-
def generate: () -> String
|
18
|
-
|
19
|
-
# Generates the Mermaid syntax for the state diagram.
|
20
|
-
# @return [String]
|
21
|
-
def to_mermaid: () -> String
|
22
|
-
|
23
|
-
# Need RBS definitions for State and Transition classes as well
|
24
|
-
# in sig/mermaid/state_diagram/state.rbs and sig/mermaid/state_diagram/transition.rbs
|
25
|
-
end
|
26
|
-
end
|