class CanvasSync::JobBatches::ChainBuilder

def iterate_job_tree(root: self.base_job, path: [], &blk)

def iterate_job_tree(root: self.base_job, path: [], &blk)
  blk.call(root, path)
  if self.class._job_type_definitions[root[:job]]
    sub_jobs = self.class.get_chain_parameter(root)
    sub_jobs.each_with_index do |sub_job, i|
      iterate_job_tree(root: sub_job, path: [*path, root], &blk)
    end
  end
end