Class: TTY::Command::Printers::Pretty

Inherits:
Abstract
  • Object
show all
Defined in:
lib/tty/command/printers/pretty.rb

Constant Summary collapse

TIME_FORMAT =
"%5.3f %s"

Instance Attribute Summary

Attributes inherited from Abstract

#err_data, #options, #out_data, #output

Instance Method Summary collapse

Constructor Details

#initializePretty

Returns a new instance of Pretty.

[View source]

9
10
11
12
# File 'lib/tty/command/printers/pretty.rb', line 9

def initialize(*)
  super
  @uuid = options.fetch(:uuid, true)
end

Instance Method Details

[View source]

25
26
27
28
# File 'lib/tty/command/printers/pretty.rb', line 25

def print_command_err_data(cmd, *args)
  message = args.map(&:chomp).join(" ")
  write(cmd, "\t" + decorate(message, :red), err_data)
end
[View source]

30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tty/command/printers/pretty.rb', line 30

def print_command_exit(cmd, status, runtime, *args)
  if cmd.only_output_on_error && !status.zero?
    output << out_data
    output << err_data
  end

  runtime = TIME_FORMAT % [runtime, pluralize(runtime, "second")]
  message = ["Finished in #{runtime}"]
  message << " with exit status #{status}" if status
  message << " (#{success_or_failure(status)})"
  write(cmd, message.join)
end
[View source]

20
21
22
23
# File 'lib/tty/command/printers/pretty.rb', line 20

def print_command_out_data(cmd, *args)
  message = args.map(&:chomp).join(" ")
  write(cmd, "\t#{message}", out_data)
end
[View source]

14
15
16
17
18
# File 'lib/tty/command/printers/pretty.rb', line 14

def print_command_start(cmd, *args)
  message = ["Running #{decorate(cmd.to_command, :yellow, :bold)}"]
  message << args.map(&:chomp).join(" ") unless args.empty?
  write(cmd, message.join)
end

#write(cmd, message, data = nil) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Write message out to output

[View source]

46
47
48
49
50
51
52
53
54
55
56
# File 'lib/tty/command/printers/pretty.rb', line 46

def write(cmd, message, data = nil)
  cmd_set_uuid = cmd.options.fetch(:uuid, true)
  uuid_needed = cmd.options[:uuid].nil? ? @uuid : cmd_set_uuid
  out = []
  if uuid_needed
    out << "[#{decorate(cmd.uuid, :green)}] " unless cmd.uuid.nil?
  end
  out << "#{message}\n"
  target = (cmd.only_output_on_error && !data.nil?) ? data : output
  target << out.join
end