lib/dri/commands/fetch/failures.rb in dri-0.1.3 vs lib/dri/commands/fetch/failures.rb in dri-0.2.0
- old
+ new
@@ -1,39 +1,38 @@
# frozen_string_literal: true
require_relative '../../command'
+require_relative '../../utils/table'
-require 'tty-table'
-
module Dri
module Commands
class Fetch
class Failures < Dri::Command
+ include Dri::Utils::Table
using Refinements
def initialize(options)
@options = options
@today_iso_format = Time.now.strftime('%Y-%m-%dT00:00:00Z')
end
- def execute(input: $stdin, output: $stdout)
+ def execute(input: $stdin, output: $stdout) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
verify_config_exists
title = add_color('Title', :bright_yellow)
triaged = add_color('Triaged?', :bright_yellow)
author = add_color('Author', :bright_yellow)
url = add_color('URL', :bright_yellow)
failures = []
urgent = []
- labels = [ title, triaged, author, url ]
+ labels = [title, triaged, author, url]
triaged_counter = 0
logger.info "Fetching today's failures..."
- spinner.run do
-
+ spinner.run do # rubocop:disable Metrics/BlockLength
response = api_client.fetch_failures(date: @today_iso_format, state: 'opened')
if response.nil?
logger.info 'Life is great, there are no new failures today!'
exit 0
@@ -45,11 +44,11 @@
url = failure['web_url']
award_emoji_url = failure['_links']['award_emoji']
triaged = add_color('x', :red)
emoji_awards = api_client.fetch_awarded_emojis(award_emoji_url).find do |e|
- e['name'] == emoji && e['user']['username'] == username
+ (e['name'] == emoji) && (e['user']['username'] == username)
end
if emoji_awards
triaged = add_color('✓', :green)
triaged_counter += 1
@@ -57,27 +56,29 @@
if @options[:urgent]
labels = failure['labels']
labels.each do |label|
- if label.include? ('found:canary.gitlab.com' && 'found:canary.staging.gitlab.com')
+ if label.include?('found:canary.gitlab.com' && 'found:canary.staging.gitlab.com')
urgent << [title, triaged, author, url]
end
end
end
failures << [title, triaged, author, url]
end
end
if @options[:urgent]
- table = TTY::Table.new(labels, urgent)
- puts table.render(:ascii, resize: true, alignments: [:center, :center, :center, :center])
- output.puts "\nFound: #{urgent.size} urgent failures, occurring in both canary.gitlab.com and canary.staging.gitlab.com."
+ print_table(labels, urgent, alignments: [:left, :center, :center, :left])
+ output.puts(<<~MSG)
+ Found: #{urgent.size} urgent failures, occurring in both canary.gitlab.com and canary.staging.gitlab.com.
+ MSG
else
- table = TTY::Table.new(labels, failures)
- puts table.render(:ascii, resize: true, alignments: [:center, :center, :center, :center])
- output.puts "\nFound: #{failures.size} failures, of these #{triaged_counter} have been triaged with a #{emoji}."
+ print_table(labels, failures, alignments: [:left, :center, :center, :left])
+ output.puts(<<~MSG)
+ Found: #{failures.size} failures, of these #{triaged_counter} have been triaged with a #{emoji}.
+ MSG
end
end
end
end
end