Class: Cloudbuildviz::Visualizer

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudbuildviz/visualizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(parsed_cloudbuild_steps) ⇒ Visualizer



2
3
4
# File 'lib/cloudbuildviz/visualizer.rb', line 2

def initialize(parsed_cloudbuild_steps)
  @parsed_cloudbuild_steps = parsed_cloudbuild_steps
end

Instance Method Details

#visualize_normal_build(filename) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/cloudbuildviz/visualizer.rb', line 6

def visualize_normal_build(filename)
  g = GraphViz.new( :G, type: :digraph )
  node_hash = Hash.new(nil)
  origin_node = g.add_nodes('Start')

  # Create all nodes
  @parsed_cloudbuild_steps.each do |s|
    node_hash[s.id] = g.add_nodes(s.id)
  end

  # Draw the edges
  @parsed_cloudbuild_steps.each do |s|
    if s.origin_step?
      g.add_edges(origin_node, node_hash[s.id])
    else
      s.prev_ids.each do |prev_id|
        g.add_edges(node_hash[prev_id], node_hash[s.id])
      end
    end
  end
  
  # Generate output image
  g.output( png: filename )
end