class Cloudbuildviz::Loader
Constants
- ORIGIN_ID
Public Class Methods
new(filename = '')
click to toggle source
# 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
Public Instance Methods
parse_cloudbuild_steps()
click to toggle source
# 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
Private Instance Methods
implicit_next_step?(cloudbuild_step)
click to toggle source
# File lib/cloudbuildviz/loader.rb, line 42 def implicit_next_step?(cloudbuild_step) !cloudbuild_step.key?('waitFor') || cloudbuild_step['waitFor'].size == 0 end
origin_step?(cloudbuild_step)
click to toggle source
# File lib/cloudbuildviz/loader.rb, line 37 def origin_step?(cloudbuild_step) cloudbuild_step['waitFor'].size == 1 && cloudbuild_step['waitFor'][0].strip == ORIGIN_ID end