class ConsoleFormatter
Attributes
verbose[R]
Public Class Methods
new(verbose, color: nil)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 8 def initialize(verbose, color: nil) @verbose = verbose @color = color.nil? ? tty? : color @immediate_verbose = true @verbose_messages = [] end
Public Instance Methods
ask(question)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 82 def ask(question) return unless tty? STDOUT.print "[#{colorize('?', :yellow)}] #{question}" return $stdin.gets.chomp.downcase.strip end
colored?()
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 88 def colored? @color end
dump_error(error, message = nil)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 15 def dump_error(error, message = nil) return unless verbose puts colorize(message, :blue) if message line = "-" * 80 puts colorize(line, :yellow) puts colorize("#{error.class.name}: #{error.message}", :red) puts colorize("#{error.backtrace.map {|l| " #{l}\n"}.join}", :yellow) puts colorize(line, :yellow) end
show_error(message)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 25 def show_error(message) STDOUT.print colorize(message, :yellow) end
show_failure(message)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 29 def show_failure(message) STDOUT.print(colorize(message, :red)) end
show_options(options, message = nil)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 33 def show_options(options, message = nil) return unless verbose message ||= I18n.t(:verbose_header, version: hiptest_publisher_version) puts colorize(message, :yellow) options.each { |k, v| puts " - #{k}: #{v.inspect}" } end
show_status_message(message, status=nil)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 49 def show_status_message(message, status=nil) status_icon = " " output = STDOUT if status == :success status_icon = colorize("v", :green) elsif status == :warning status_icon = colorize("?", :yellow) elsif status == :failure status_icon = colorize("x", :red) output = STDERR end if status @immediate_verbose = true cursor_offset = "" else return unless tty? return if IO.console.nil? rows, columns = IO.console.winsize return if columns == 0 @immediate_verbose = false vertical_offset = (4 + message.length) / columns cursor_offset = "\r\e[#{vertical_offset + 1}A" end output.print "[#{status_icon}] #{message}#{cursor_offset}\n" if @immediate_verbose && !@verbose_messages.empty? @verbose_messages.each { |message| show_verbose_message(message) } @verbose_messages.clear end end
show_verbose_message(message)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 40 def show_verbose_message(message) return unless verbose if @immediate_verbose STDOUT.print "#{message}\n" else @verbose_messages << message end end
Private Instance Methods
colorize(txt, color)
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 98 def colorize(txt, color) colored? ? txt.send(color) : txt end
tty?()
click to toggle source
# File lib/hiptest-publisher/formatters/console_formatter.rb, line 94 def tty? $stdout.tty? end