Module: Mermaid::TimelineDiagramRenderer

Defined in:
lib/mermaid/timeline_diagram_renderer.rb

Overview

Module containing Mermaid rendering logic for Diagrams::TimelineDiagram

Instance Method Summary collapse

Instance Method Details

#to_mermaidObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mermaid/timeline_diagram_renderer.rb', line 9

def to_mermaid
  mermaid_string = +"timeline\n"
  mermaid_string << "title #{@title}\n" if @title && !@title.empty?

  sections.each do |section|
    # Don't output the default section title if it's the only one and has no specific title
    unless sections.size == 1 && section.title == Diagrams::TimelineDiagram::DEFAULT_SECTION_TITLE
      mermaid_string << "section #{section.title}\n"
    end

    section.periods.each do |period|
      # Format: Period Label : Event 1 : Event 2 ...
      event_descriptions = period.events.map(&:description).join(' : ')
      mermaid_string << "  #{period.label} : #{event_descriptions}\n"
    end
  end

  mermaid_string.strip
end