Module: Arborist::CLI::Subcommand

Included in:
Ack, Client, Config, Reset, RunOnce, Start, Summary, Tree, Watch
Defined in:
lib/arborist/cli.rb

Overview

Convenience module for subcommand registration syntax sugar.

Class Method Summary collapse

Class Method Details

.display_table(header, rows) ⇒ Object

Output a table with the given header (an array) and rows (an array of arrays).



319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# File 'lib/arborist/cli.rb', line 319

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

.error_string(string) ⇒ Object

Return the specified string in the ‘error’ ANSI color.



312
313
314
# File 'lib/arborist/cli.rb', line 312

def error_string( string )
	return hl.error( string )
end

.exit_now!(message, exit_code = 1) ⇒ Object

Exit with the specified exit_code after printing the given message.

Raises:

  • (GLI::CustomExit)


267
268
269
# File 'lib/arborist/cli.rb', line 267

def exit_now!( message, exit_code=1 )
	raise GLI::CustomExit.new( message, exit_code )
end

.extended(mod) ⇒ Object

Extension callback – register the extending object as a subcommand.



256
257
258
259
# File 'lib/arborist/cli.rb', line 256

def self::extended( mod )
	Arborist::CLI.log.debug "Registering subcommands from %p" % [ mod ]
	Arborist::CLI.register_subcommands( mod )
end

.headline_string(string) ⇒ Object

Return the specified string in the ‘headline’ ANSI color.



294
295
296
# File 'lib/arborist/cli.rb', line 294

def headline_string( string )
	return hl.headline( string )
end

.help_now!(message = nil) ⇒ Object

Exit with a helpful message and display the usage.



273
274
275
276
277
278
# File 'lib/arborist/cli.rb', line 273

def help_now!( message=nil )
	exception = OptionParser::ParseError.new( message )
	def exception.exit_code; 64; end

	raise exception
end

.highlight_string(string) ⇒ Object

Return the specified string in the ‘highlight’ ANSI color.



300
301
302
# File 'lib/arborist/cli.rb', line 300

def highlight_string( string )
	return hl.highlight( string )
end

.hlObject

Return the global Pastel object for convenient formatting, color, etc.



288
289
290
# File 'lib/arborist/cli.rb', line 288

def hl
	return Arborist::CLI.pastel
end

.promptObject

Get the prompt (a TTY::Prompt object)



282
283
284
# File 'lib/arborist/cli.rb', line 282

def prompt
	return Arborist::CLI.prompt
end

.success_string(string) ⇒ Object

Return the specified string in the ‘success’ ANSI color.



306
307
308
# File 'lib/arborist/cli.rb', line 306

def success_string( string )
	return hl.success( string )
end

.unless_dryrun(description, return_value = true) ⇒ Object Also known as: unless_dry_run

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.



352
353
354
355
356
357
358
359
# File 'lib/arborist/cli.rb', line 352

def unless_dryrun( description, return_value=true )
	if $DRYRUN
		self.log.warn( "DRYRUN> #{description}" )
		return return_value
	else
		return yield
	end
end

.visible_chars(string) ⇒ Object

Return the count of visible (i.e., non-control) characters in the given string.



344
345
346
# File 'lib/arborist/cli.rb', line 344

def visible_chars( string )
	return string.to_s.gsub(/\e\[.*?m/, '').scan( /\P{Cntrl}/ ).size
end