Class: Rdt::Mermaid

Inherits:
Object
  • Object
show all
Defined in:
lib/rdt/mermaid.rb

Class Method Summary collapse

Class Method Details

.encode_to_editor_url(md) ⇒ Object

does not work



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rdt/mermaid.rb', line 17

def encode_to_editor_url(md)
  json = {
    code: md,
    mermaid: {
      theme: "default"
    },
    updateEditor: false,
    autoSync: true,
    updateDiagram: false
  }
  encoded = Base64.urlsafe_encode64(json.to_json.force_encoding("ASCII"))
  "https://mermaid.ink/img/#{encoded}"
  #url = encode_mermaid(diagram)
  encoded
end

.generate_file(chart) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rdt/mermaid.rb', line 33

def generate_file(chart)
  html = "    <!DOCTYPE html>\n      <html lang=\"en\">\n        <body>\n          <style>svg { max-width: none; width: 2000px; }</style>\n          <pre class=\"mermaid\">\n          \#{chart}\n          </pre>\n          <script type=\"module\">\n            import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';\n          </script>\n        </body>\n      </html>\n      HTML\n\n  begin\n    File.write(\"dependencies.html\", html)\n  rescue Errno::EACCES => e\n    puts \"Failed to write to file: \#{e.message}\"\n  end\nend\n"

.markdown_for(dag) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/rdt/mermaid.rb', line 5

def markdown_for(dag)
  mermaid = "flowchart LR\n"
  dag.each do |model, dependencies|
    mermaid += "#{model}\n"
    dependencies.each do |dependency|
      mermaid += "#{dependency} --> #{model}\n"
    end
  end
  mermaid
end