Module: Trailblazer::Developer::Trace::Tree::ParentMap

Defined in:
lib/trailblazer/developer/trace/tree.rb

Overview

Map each Node instance to its parent Node.

Class Method Summary collapse

Class Method Details

.build(node) ⇒ Object



20
21
22
23
24
25
# File 'lib/trailblazer/developer/trace/tree.rb', line 20

def self.build(node)
  children_map = []
  node.nodes.each { |n| children_map += ParentMap.build(n) }#.flatten(1)

  node.nodes.collect { |n| [n, node] } + children_map
end

.path_for(parent_map, node) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/trailblazer/developer/trace/tree.rb', line 28

def self.path_for(parent_map, node)
  path = []

  while parent = parent_map[node] # DISCUSS: what if the graphs are cached and present, already?
    node_id = Activity::Introspect::TaskMap(node.captured_input.activity)[node.captured_input.task][:id]
    path << node_id

    node = parent
  end

  path.reverse
end