Module: Kiba::Extend::Registry::Treeable

Includes:
NodeLabelable
Included in:
FileRegistryEntry
Defined in:
lib/kiba/extend/registry/treeable.rb

Overview

Mixin module for generating dependency tree diagram for entry

Since:

  • 7.0.0

Instance Method Summary collapse

Methods included from NodeLabelable

#node_label, #node_qualification

Instance Method Details

#ancestorsArray<Symbol>

Returns:

  • (Array<Symbol>)

Since:

  • 7.0.0



29
30
31
32
33
34
35
# File 'lib/kiba/extend/registry/treeable.rb', line 29

def ancestors
  result = [parents]
  until result.last.empty?
    result << traverse_up(result.last)
  end
  result.flatten.compact
end

#diagramDiagrams::FlowchartDiagram

Returns:

  • (Diagrams::FlowchartDiagram)

Since:

  • 7.0.0



38
39
40
# File 'lib/kiba/extend/registry/treeable.rb', line 38

def diagram
  Diagrams::FlowchartDiagram.new(nodes: nodes, edges: edges)
end

#mermaidString

Returns:

  • (String)

Since:

  • 7.0.0



43
# File 'lib/kiba/extend/registry/treeable.rb', line 43

def mermaid = diagram.to_mermaid

#parentsArray<Symbol>

Returns:

  • (Array<Symbol>)

Since:

  • 7.0.0



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/kiba/extend/registry/treeable.rb', line 15

def parents
  files = creator.files
  [files[:source], files[:lookup]].compact
    .flatten
    .map do |file|
      next file if file.respond_to?(:key)

      Kiba::Extend.registry.resolve(file)
    end
rescue NoMethodError
  []
end