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
print_pretty() click to toggle source
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