Module: ShellOpts
- Defined in:
- lib/shellopts.rb,
lib/shellopts/ansi.rb,
lib/shellopts/args.rb,
lib/shellopts/dump.rb,
lib/shellopts/lexer.rb,
lib/shellopts/stack.rb,
lib/shellopts/token.rb,
lib/shellopts/option.rb,
lib/shellopts/parser.rb,
lib/shellopts/grammar.rb,
lib/shellopts/program.rb,
lib/shellopts/version.rb,
lib/shellopts/analyzer.rb,
lib/shellopts/renderer.rb,
lib/shellopts/formatter.rb,
lib/shellopts/interpreter.rb,
lib/shellopts/argument_type.rb
Overview
Option rendering
-a, --all # Only used in brief and doc formats (enum)
--all # Only used in usage (long)
-a # Only used in usage (short)
Option group rendering
-a, --all -b, --beta # Only used in brief formats (enum)
--all --beta # Used in usage (long)
-a -b # Used in usage (short)
-a, --all # Only used in doc format (:multi)
-b, --beta
Command rendering
cmd --all --beta [cmd1|cmd2] ARG1 ARG2 # Single-line formats (:single)
cmd --all --beta [cmd1|cmd2] ARGS... # Not used
cmd -a -b [cmd1|cmd2] ARG1 ARG2
cmd -a -b [cmd1|cmd2] ARGS... # Not used
cmd -a -b [cmd1|cmd2] ARG1 ARG2 # One line for each argument description (:enum)
cmd -a -b [cmd1|cmd2] ARG3 ARG4 # (used in the USAGE section)
cmd --all --beta # Multi-line formats (:multi)
[cmd1|cmd2] ARG1 ARG2
cmd --all --beta
<commands> ARGS
Defined Under Namespace
Modules: Debug, ErrorHandling, Grammar, Message, Stack, Verbose Classes: Analyzer, AnalyzerError, Ansi, Args, Command, CompilerError, Error, Failure, Formatter, InternalError, Interpreter, Lexer, LexerError, Line, Option, Parser, ParserError, Program, ShellOpts, ShellOptsError, Token
Constant Summary collapse
- VERSION =
"2.6.3"
Class Method Summary collapse
- .debug(message, newline: true) ⇒ Object
- .debug? ⇒ Boolean
- .error(subject = nil, message) ⇒ Object
- .failure(message) ⇒ Object
- .instance ⇒ Object
- .instance=(instance) ⇒ Object
- .instance? ⇒ Boolean
-
.mesg(message, newline: true) ⇒ Object
Emit a message on standard output.
-
.notice(message, newline: true) ⇒ Object
Emit a message on standard error.
- .process(spec, argv, silent: nil, quiet: nil, verbose: nil, debug: nil, **opts) ⇒ Object
- .quiet? ⇒ Boolean
-
.shellopts ⇒ Object
TODO: Yt.
-
.silent? ⇒ Boolean
Returns the corresponding option status on the program object.
-
.verb(level = 1, message, newline: true) ⇒ Object
Emit a message on standard output.
- .verbose?(level = 1) ⇒ Boolean
Class Method Details
.debug(message, newline: true) ⇒ Object
470 471 472 473 474 475 476 |
# File 'lib/shellopts.rb', line 470 def self.debug(, newline: true) method = newline ? :puts : :print if debug? $stdout.send(method, ) $stdout.flush end end |
.debug? ⇒ Boolean
429 |
# File 'lib/shellopts.rb', line 429 def self.debug?() instance.program.__debug__ end |
.error(subject = nil, message) ⇒ Object
431 432 433 434 435 |
# File 'lib/shellopts.rb', line 431 def self.error(subject = nil, ) instance.error(subject, ) if instance? # Never returns $stderr.puts "#{File.basename($PROGRAM_NAME)}: #{message}" exit 1 end |
.failure(message) ⇒ Object
437 438 439 440 441 |
# File 'lib/shellopts.rb', line 437 def self.failure() instance.failure() if instance? $stderr.puts "#{File.basename($PROGRAM_NAME)}: #{message}" exit 1 end |
.instance ⇒ Object
415 |
# File 'lib/shellopts.rb', line 415 def self.instance() @instance or raise Error, "ShellOpts is not initialized" end |
.instance=(instance) ⇒ Object
416 |
# File 'lib/shellopts.rb', line 416 def self.instance=(instance) @instance = instance end |
.instance? ⇒ Boolean
414 |
# File 'lib/shellopts.rb', line 414 def self.instance?() !@instance.nil? end |
.mesg(message, newline: true) ⇒ Object
Emit a message on standard output. The –quiet option suppresses these messages
453 454 455 456 457 458 459 |
# File 'lib/shellopts.rb', line 453 def self.mesg(, newline: true) method = newline ? :puts : :print if !quiet? $stdout.send(method, ) $stdout.flush end end |
.notice(message, newline: true) ⇒ Object
Emit a message on standard error. The –silent option suppresses these messages
444 445 446 447 448 449 450 |
# File 'lib/shellopts.rb', line 444 def self.notice(, newline: true) method = newline ? :puts : :print if !silent? $stderr.send(method, ) $stderr.flush end end |
.process(spec, argv, silent: nil, quiet: nil, verbose: nil, debug: nil, **opts) ⇒ Object
401 402 403 404 405 406 407 408 409 |
# File 'lib/shellopts.rb', line 401 def self.process(spec, argv, silent: nil, quiet: nil, verbose: nil, debug: nil, **opts) constrain silent, String, true, false, nil constrain quiet, String, true, false, nil silent = silent.nil? ? Message.is_included? || Verbose.is_included? : silent quiet = quiet.nil? ? Message.is_included? || Verbose.is_included? : quiet verbose = verbose.nil? ? ::ShellOpts::Verbose.is_included? : verbose debug = debug.nil? ? Debug.is_included? : debug ShellOpts.process(spec, argv, silent: silent, quiet: quiet, verbose: verbose, debug: debug, **opts) end |
.quiet? ⇒ Boolean
427 |
# File 'lib/shellopts.rb', line 427 def self.quiet?() silent? || instance.program.__quiet__ end |
.shellopts ⇒ Object
TODO: Yt
417 |
# File 'lib/shellopts.rb', line 417 def self.shellopts() instance end |
.silent? ⇒ Boolean
Returns the corresponding option status on the program object. Note that the “bare” ShellOpts standard option methods (eg. ShellOpts.silent) determines if an option can be used while the query methods (eg. ShellOpts.silent?) reports if the option was present on the command line
The methods below are implemented using the name-independent members of Program: __silent__ etc.
426 |
# File 'lib/shellopts.rb', line 426 def self.silent?() instance.program.__silent__ end |
.verb(level = 1, message, newline: true) ⇒ Object
Emit a message on standard output. The –verbose option controls these messages
462 463 464 465 466 467 468 |
# File 'lib/shellopts.rb', line 462 def self.verb(level = 1, , newline: true) method = newline ? :puts : :print if verbose?(level) $stdout.send(method, ) $stdout.flush end end |
.verbose?(level = 1) ⇒ Boolean
428 |
# File 'lib/shellopts.rb', line 428 def self.verbose?(level = 1) level <= instance.program.__verbose__ end |