Sha256: eea986cc87db1e00c2774a7cc2ae9abdbf39205b1fa55155ac27e4d21c569f4c
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true require_relative "nodes_link" module JsDependency module Mermaid class Root attr_accessor :orientation def initialize(orientation = "LR") @orientation = orientation @list = [] end def add(parent, child) @list << NodesLink.new(parent, child) end def export(name_level: 1, src_path: nil) nodes_links = if src_path src_pathname = Pathname.new(src_path).realpath @list.map do |nodes_link| NodesLink.new(nodes_link.parent.exist? ? nodes_link.parent.relative_path_from(src_pathname.to_s) : nodes_link.parent.to_s, nodes_link.child.exist? ? nodes_link.child.relative_path_from(src_pathname.to_s) : nodes_link.child.to_s) end else @list end str = "flowchart #{orientation}\n" str + nodes_links.uniq do |link| "#{link.parent}__#{link.child}" end.sort_by { |link| "#{link.parent}__#{link.child}" }.map do |link| "#{link.parent_module_name(name_level)} --> #{link.child_module_name(name_level)}" end.join("\n") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
js_dependency-0.3.0 | lib/js_dependency/mermaid/root.rb |