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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +6 -6
  4. data/lib/mermaid/element_renderers/edge_renderer.rb +1 -1
  5. data/lib/mermaid/element_renderers/erd_entity_renderer.rb +37 -0
  6. data/lib/mermaid/element_renderers/erd_relationship_renderer.rb +44 -0
  7. data/lib/mermaid/element_renderers/node_renderer.rb +1 -1
  8. data/lib/mermaid/element_renderers/relationship_renderer.rb +1 -1
  9. data/lib/mermaid/element_renderers/slice_renderer.rb +1 -1
  10. data/lib/mermaid/element_renderers/state_renderer.rb +1 -1
  11. data/lib/mermaid/element_renderers/task_renderer.rb +2 -2
  12. data/lib/mermaid/er_diagram_renderer.rb +24 -0
  13. data/lib/mermaid/gantt_diagram_renderer.rb +6 -2
  14. data/lib/mermaid/version.rb +1 -1
  15. data/lib/mermaid.rb +11 -3
  16. data/sig/diagrams/base.rbs +1 -1
  17. data/sig/diagrams/class_diagram.rbs +1 -1
  18. data/sig/diagrams/elements/edge.rbs +3 -3
  19. data/sig/diagrams/elements/erd_entity.rbs +11 -0
  20. data/sig/diagrams/elements/erd_relationship.rbs +11 -0
  21. data/sig/diagrams/elements/node.rbs +3 -3
  22. data/sig/diagrams/elements/relationship.rbs +2 -4
  23. data/sig/diagrams/elements/slice.rbs +3 -3
  24. data/sig/diagrams/elements/state.rbs +3 -3
  25. data/sig/diagrams/elements/task.rbs +3 -3
  26. data/sig/diagrams/elements/transition.rbs +3 -3
  27. data/sig/diagrams/er_diagram.rbs +9 -0
  28. data/sig/diagrams/flowchart_diagram.rbs +1 -1
  29. data/sig/diagrams/gantt_diagram.rbs +1 -1
  30. data/sig/diagrams/pie_diagram.rbs +1 -1
  31. data/sig/diagrams/state_diagram.rbs +1 -1
  32. metadata +11 -7
  33. data/sig/mermaid/base_diagram.rbs +0 -31
  34. data/sig/mermaid/state_diagram.rbs +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f45d52ec5ba6ee5b68319696a39f2d63457aef75450754a3aa8db9d00664765
4
- data.tar.gz: 4567ecd088bfd31d769fc80a5e256e1a169c74c5ad5c349fbef5b4d42fad857b
3
+ metadata.gz: 82eb20d2315cbe0cf01d624664b573947d891b7f142d531a47805531724232b1
4
+ data.tar.gz: '02801805d9f7361fd32e575f0db38cfcafbcf92a542c47eae9990c554c2d1924'
5
5
  SHA512:
6
- metadata.gz: 984eae28a2bbe392c12a23331a8b69db664252b4bc949858a46fc8d9d4025ecbaab3c7aea0a65926a0b9f5ad14737e3066aa2df8236d96e64c377f6e90de6d3e
7
- data.tar.gz: 104f52bd0c05ba3b1ad4ad8df6deec4d594bd08255fdc728c7f547b6627872fbd4fb8cf4692d931511fd1e2202f0b1aa0a24449fcf27e7c1e1fa2e1788e57baa
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
- task1 = Diagrams::Elements::Task.new(id: 't1', name: 'Phase 1', start_date: '2024-01-01', end_date: '2024-01-10')
114
- task2 = Diagrams::Elements::Task.new(id: 't2', name: 'Phase 2', start_date: '2024-01-11', end_date: '2024-01-20')
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
- # : Phase 1 : t1, 2024-01-01, 2024-01-10
123
- # : Phase 2 : t2, 2024-01-11, 2024-01-20
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::Elements::Edge
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::Elements::Node
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::Elements::Relationship
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::Elements::Slice
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::Elements::State
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::Elements::Task
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
- "#{name} :#{id}, #{start_date}, #{end_date}"
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 #{@title}\n" if @title && !@title.empty?
12
- tasks.each { |task| mermaid_string << task.to_mermaid_fragment << "\n" }
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mermaid
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.6'
5
5
  end
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 # Remove Zeitwerk setup
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) # Add prepend for Timeline
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
- # Add GitCommit, GitBranch, Timeline* prepends if/when renderers are created
32
+ ERDEntity.prepend(Mermaid::ElementRenderers::ERDEntityRenderer) # Prepend ERD element renderers
33
+ ERDRelationship.prepend(Mermaid::ElementRenderers::ERDRelationshipRenderer)
26
34
  end
27
35
  end
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's base class
2
2
  module Diagrams
3
3
  class Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax representation of the diagram.
6
6
  def to_mermaid: () -> String
7
7
  end
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's ClassDiagram class
2
2
  module Diagrams
3
3
  class ClassDiagram < Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax for the class diagram.
6
6
  def to_mermaid: () -> String
7
7
 
@@ -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 Elements
4
- class Edge < Dry::Struct
5
- # Added by mermaid-ruby gem
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 Elements
4
- class Node < Dry::Struct
5
- # Added by mermaid-ruby gem
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 Elements
4
- class Relationship < Dry::Struct
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 Elements
4
- class Slice < Dry::Struct
5
- # Added by mermaid-ruby gem
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 Elements
4
- class State < Dry::Struct
5
- # Added by mermaid-ruby gem
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 Elements
4
- class Task < Dry::Struct
5
- # Added by mermaid-ruby gem
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 Elements
4
- class Transition < Dry::Struct
5
- # Added by mermaid-ruby gem
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
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's FlowchartDiagram class
2
2
  module Diagrams
3
3
  class FlowchartDiagram < Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax for the flowchart diagram.
6
6
  def to_mermaid: () -> String
7
7
 
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's GanttDiagram class
2
2
  module Diagrams
3
3
  class GanttDiagram < Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax for the Gantt chart.
6
6
  def to_mermaid: () -> String
7
7
 
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's PieDiagram class
2
2
  module Diagrams
3
3
  class PieDiagram < Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax for the pie chart.
6
6
  def to_mermaid: () -> String
7
7
 
@@ -1,7 +1,7 @@
1
1
  # RBS signatures for patches applied to the 'diagram' gem's StateDiagram class
2
2
  module Diagrams
3
3
  class StateDiagram < Base
4
- # Added by mermaid-ruby gem
4
+
5
5
  # Generates the Mermaid syntax for the state diagram.
6
6
  def to_mermaid: () -> String
7
7
 
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.2
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: 2025-04-01 00:00:00.000000000 Z
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.2
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.2
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.2
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