Class: CmdParse::HelpCommand
- Defined in:
- lib/module_cmdparse/cmdparse.rb
Overview
The default help command. It adds the options “-h” and “–help” to the global options of the associated CommandParser. When the command is specified on the command line, it can show the main help or individual command help.
Instance Attribute Summary
Attributes inherited from Command
#commands, #default_command, #description, #name, #options, #pen, #short_desc, #super_command
Instance Method Summary collapse
- #execute(args) ⇒ Object
- #init ⇒ Object
-
#initialize(_pen = $stdout) ⇒ HelpCommand
constructor
A new instance of HelpCommand.
- #usage ⇒ Object
Methods inherited from Command
#<=>, #add_command, #commandparser, #has_commands?, #set_execution_block, #show_help, #super_commands, #use_partial_commands
Constructor Details
#initialize(_pen = $stdout) ⇒ HelpCommand
Returns a new instance of HelpCommand.
282 283 284 285 286 287 288 289 |
# File 'lib/module_cmdparse/cmdparse.rb', line 282 def initialize(_pen = $stdout) super( 'help', false ) self.short_desc = 'Provide help for individual commands' self.description = "This command prints the program help if no arguments are given. If one or\n" \ "more command names are given as arguments, these arguments are interpreted\n" \ "as a hierachy of commands and the help for the right most command is show." @pen = _pen end |
Instance Method Details
#execute(args) ⇒ Object
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 |
# File 'lib/module_cmdparse/cmdparse.rb', line 306 def execute(args) if args.length > 0 cmd = commandparser.main_command arg = args.shift while !arg.nil? && cmd.commands[arg] cmd = cmd.commands[arg] arg = args.shift end if arg.nil? cmd.show_help else raise InvalidArgumentError, args.unshift(arg).join(' ') end else show_program_help end end |
#init ⇒ Object
291 292 293 294 295 296 297 298 299 300 |
# File 'lib/module_cmdparse/cmdparse.rb', line 291 def init case commandparser.main_command. when OptionParserWrapper commandparser.main_command..instance do |opt| opt.on_tail( "-h", "--help", "Show help" ) do execute( [] ) end end end end |
#usage ⇒ Object
302 303 304 |
# File 'lib/module_cmdparse/cmdparse.rb', line 302 def usage @pen.bold+"Usage: "+@pen.clear+@pen.lightcyan+"#{commandparser.program_name}"+@pen.clear+@pen.lightcyan+" help"+@pen.clear+" ["+@pen.lightcyan+"COMMAND SUBCOMMAND"+@pen.clear+" ...]" end |