Class: Cloudbuildviz::Loader

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

Constant Summary collapse

ORIGIN_ID =
'-'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(filename = '') ⇒ Loader

Returns a new instance of Loader.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/cloudbuildviz/loader.rb', line 6

def initialize(filename = '')
  if filename.class != String
    raise Cloudbuildviz::LoaderInitError.new('invalid filename')
  end

  cloudbuild = YAML::load_file(filename)
  if !cloudbuild.key?('steps') or cloudbuild['steps'].size == 0
    raise Cloudbuildviz::LoaderInitError.new('cloudbuild missing valid \'steps\' key at root')
  end

  @cloudbuild_steps = cloudbuild['steps']
  
end

Instance Method Details

#parse_cloudbuild_stepsObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/cloudbuildviz/loader.rb', line 20

def parse_cloudbuild_steps
  parsed_ids = []
  @cloudbuild_steps.map do |s| 
    result = if implicit_next_step?(s)
                Cloudbuildviz::Models::CloudbuildStep.new(id: s['id'], prev_ids: parsed_ids.dup)
              elsif origin_step?(s)
                Cloudbuildviz::Models::CloudbuildStep.new(id: s['id'])
              else
                Cloudbuildviz::Models::CloudbuildStep.new(id: s['id'], prev_ids: s['waitFor'])
              end
    
    parsed_ids << s['id']
    result
  end
end