module Arborist::CLI::Subcommand
Convenience module for subcommand registration syntax sugar.
Public Class Methods
Extension callback – register the extending object as a subcommand.
# File lib/arborist/cli.rb, line 255 def self::extended( mod ) Arborist::CLI.log.debug "Registering subcommands from %p" % [ mod ] Arborist::CLI.register_subcommands( mod ) end
Public Instance Methods
Output a table with the given header
(an array) and rows
(an array of arrays).
# File lib/arborist/cli.rb, line 342 def display_table( header, rows ) table = TTY::Table.new( header, rows ) renderer = nil if hl.enabled? renderer = TTY::Table::Renderer::Unicode.new( table, multiline: true, padding: [0,1,0,1] ) renderer.border.style = :dim else renderer = TTY::Table::Renderer::ASCII.new( table, multiline: true, padding: [0,1,0,1] ) end puts renderer.render end
Return the specified string
in the 'error' ANSI color.
# File lib/arborist/cli.rb, line 335 def error_string( string ) return hl.error( string ) end
Exit with the specified exit_code
after printing the given message
.
# File lib/arborist/cli.rb, line 290 def exit_now!( message, exit_code=1 ) raise GLI::CustomExit.new( message, exit_code ) end
Return the specified string
in the 'headline' ANSI color.
# File lib/arborist/cli.rb, line 317 def headline_string( string ) return hl.headline( string ) end
Exit with a helpful message
and display the usage.
# File lib/arborist/cli.rb, line 296 def help_now!( message=nil ) exception = OptionParser::ParseError.new( message ) def exception.exit_code; 64; end raise exception end
Return the specified string
in the 'highlight' ANSI color.
# File lib/arborist/cli.rb, line 323 def highlight_string( string ) return hl.highlight( string ) end
Return the global Pastel object for convenient formatting, color, etc.
# File lib/arborist/cli.rb, line 311 def hl return Arborist::CLI.pastel end
Get the prompt (a TTY::Prompt object)
# File lib/arborist/cli.rb, line 305 def prompt return Arborist::CLI.prompt end
Use this if the following command should not have the around block executed. By default, the around block is executed, but for commands that might not want the setup to happen, this can be handy
# File lib/arborist/cli.rb, line 280 def skips_around @skips_around = true end
Use this if the following command should not have the post block executed. By default, the post block is executed after each command. Using this will avoid that behavior for the following command
# File lib/arborist/cli.rb, line 272 def skips_post @skips_post = true end
Use this if the following command should not have the pre block executed. By default, the pre block is executed before each command and can result in aborting the call. Using this will avoid that behavior for the following command
# File lib/arborist/cli.rb, line 264 def skips_pre @skips_pre = true end
Return the specified string
in the 'success' ANSI color.
# File lib/arborist/cli.rb, line 329 def success_string( string ) return hl.success( string ) end
In dry-run mode, output the description instead of running the provided block and return the return_value
. If dry-run mode is not enabled, yield to the block.
# File lib/arborist/cli.rb, line 375 def unless_dryrun( description, return_value=true ) if $DRYRUN self.log.warn( "DRYRUN> #{description}" ) return return_value else return yield end end
Return the count of visible (i.e., non-control) characters in the given string
.
# File lib/arborist/cli.rb, line 367 def visible_chars( string ) return string.to_s.gsub(/\e\[.*?m/, '').scan( /\P{Cntrl}/ ).size end