class Tumugi::DAGResultReporter

Public Instance Methods

show(dag) click to toggle source
# File lib/tumugi/dag_result_reporter.rb, line 8
def show(dag)
  headings = ['Task', 'Requires', 'Parameters', 'State', 'Elapsed']
  Terminal::Table.new title: "Workflow Result", headings: headings do |t|
    dag.tsort.map.with_index do |task, index|
      proxy = task.class.merged_parameter_proxy
      requires = list(task.requires).map do |r|
        r.id
      end
      params = proxy.params.map do |name, param|
        val = param.secret? ? '***' : truncate(task.send(name.to_sym).to_s, 25)
        "#{name}=#{val}"
      end
      t << :separator if index != 0
      t << [ task.id, requires.join("\n"), params.join("\n"), task.state, task.elapsed_time ]
    end
  end
end

Private Instance Methods

truncate(text, length) click to toggle source
# File lib/tumugi/dag_result_reporter.rb, line 28
def truncate(text, length)
  return nil if text.nil?
  if text.length <= length
    text
  else
    text[0, length].concat('...')
  end
end