class CircleCI::CLI::Printer::BuildPrinter
Public Class Methods
header_for(build, title)
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 8 def header_for(build, title) texts = [ ["Project: #{build.project_name}"], ["Build: #{build.build_number}"], ["Author: #{build.author_name}"], ["Workflow: #{build.workflow_name}/#{build.workflow_job_name}"] ] Terminal::Table.new(title: title, rows: texts, style: { width: 120 }).to_s end
new(builds, project_name, pretty: true)
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 19 def initialize(builds, project_name, pretty: true) @builds_to_show = builds @project_name = project_name @pretty = pretty end
Public Instance Methods
to_s()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 25 def to_s @pretty ? print_pretty : print_compact end
Private Instance Methods
headings()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 43 def headings %w[Number Status Branch Author Commit Duration StartTime] end
max_row_widths()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 51 def max_row_widths @builds_to_show .map(&:information) .map { |array| array.map(&:to_s).map(&:size) } .transpose .map(&:max) end
pad_column_by_space(column, max_widths, index)
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 67 def pad_column_by_space(column, max_widths, index) column_string = column.to_s spaces = ' ' * (max_widths[index] - column_string.size) column_string + spaces end
pad_columns_by_space(columns, max_widths)
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 59 def pad_columns_by_space(columns, max_widths) columns .map .with_index { |column, i| pad_column_by_space(column, max_widths, i) } .join(' ') .to_s end
print_compact()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 31 def print_compact rows.map { |row| pad_columns_by_space(row, max_row_widths) }.join("\n") end
print_pretty()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 35 def print_pretty Terminal::Table.new(title: title, headings: headings, rows: rows).to_s end
rows()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 47 def rows @builds_to_show.map(&:information) end
title()
click to toggle source
# File lib/circleci/cli/printer/build_printer.rb, line 39 def title Printer.colorize_green("Recent Builds / #{@project_name}") end