class Gerrit::UI
Manages all interaction with the user.
Public Class Methods
Creates a {UI} that mediates between the given input/output streams.
@param input [Gerrit::Input] @param output [Gerrit::Output]
# File lib/gerrit/ui.rb, line 15 def initialize(input, output) @input = input @output = output @pastel = Pastel.new @shell = TTY::Shell.new end
Public Instance Methods
Print output in bold face.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 44 def bold(*args, **kwargs) print(@pastel.bold(*args), **kwargs) end
Print the specified output in a bold face and color indicative of error.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 60 def bold_error(*args, **kwargs) print(@pastel.bold.red(*args), **kwargs) end
Print the specified output in a color indicative of error.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 52 def error(args, **kwargs) print(@pastel.red(*args), **kwargs) end
Print the specified output in a color indicating information.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 84 def info(*args, **kwargs) print(@pastel.cyan(*args), **kwargs) end
Print a blank line.
# File lib/gerrit/ui.rb, line 89 def newline print('') end
Print the specified output.
@param output [String] @param newline [Boolean] whether to append a newline
# File lib/gerrit/ui.rb, line 35 def print(output, newline: true) @output.print(output) @output.print("\n") if newline end
Execute a command with a spinner animation until it completes.
# File lib/gerrit/ui.rb, line 94 def spinner(*args, &block) spinner = TTY::Spinner.new(*args) spinner_thread = Thread.new do loop do sleep 0.1 spinner.spin end end block.call ensure spinner_thread.kill newline # Ensure next line of ouptut on separate line from spinner end
Print the specified output in a color indicative of success.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 68 def success(*args, **kwargs) print(@pastel.green(*args), **kwargs) end
Prints a table.
Customize the table by passing a block and operating on the table object passed to that block to add rows and customize its appearance.
# File lib/gerrit/ui.rb, line 113 def table(options = {}, &block) t = TTY::Table.new(options) block.call(t) print(t.render(:unicode, options)) end
Get user input, stripping extraneous whitespace.
@return [String, nil]
# File lib/gerrit/ui.rb, line 25 def user_input if input = @input.get input.strip end end
Print the specified output in a color indicative of a warning.
@param args [Array] @param kwargs [Hash]
# File lib/gerrit/ui.rb, line 76 def warning(*args, **kwargs) print(@pastel.yellow(*args), **kwargs) end