Class: CmdParse::HelpCommand
Overview
The default help Command.
It adds the options “-h” and “–help” to the CommandParser#global_options.
When the command is specified on the command line (or one of the above mentioned options), it shows the main help or individual command help.
Instance Attribute Summary
Attributes inherited from Command
#commands, #data, #default_command, #name, #super_command
Instance Method Summary collapse
-
#execute(*args) ⇒ Object
:nodoc:.
-
#initialize ⇒ HelpCommand
constructor
:nodoc:.
-
#on_after_add ⇒ Object
:nodoc:.
-
#usage_arguments ⇒ Object
:nodoc:.
Methods inherited from Command
#<=>, #action, #add_command, #argument_desc, #arity, #command_chain, #command_parser, #help, #help_arguments, #help_banner, #help_commands, #help_long_desc, #help_options, #help_short_desc, #long_desc, #options, #short_desc, #takes_arguments?, #takes_commands, #takes_commands?, #usage, #usage_commands, #usage_options
Constructor Details
#initialize ⇒ HelpCommand
:nodoc:
659 660 661 662 663 664 665 666 |
# File 'lib/cmdparse.rb', line 659 def initialize #:nodoc: super('help', takes_commands: false) short_desc('Provide help for individual commands') long_desc('This command prints the program help if no arguments are given. If one or ' \ 'more command names are given as arguments, these arguments are interpreted ' \ 'as a hierachy of commands and the help for the right most command is show.') argument_desc(COMMAND: 'The name of a command or sub-command') end |
Instance Method Details
#execute(*args) ⇒ Object
:nodoc:
679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 |
# File 'lib/cmdparse.rb', line 679 def execute(*args) #:nodoc: if !args.empty? cmd = command_parser.main_command arg = args.shift while !arg.nil? && cmd.commands.key?(arg) cmd = cmd.commands[arg] arg = args.shift end if arg.nil? puts cmd.help else raise InvalidArgumentError, args.unshift(arg).join(' ') end else puts command_parser.main_command.help end end |
#on_after_add ⇒ Object
:nodoc:
668 669 670 671 672 673 |
# File 'lib/cmdparse.rb', line 668 def on_after_add #:nodoc: command_parser..on_tail("-h", "--help", "Show help") do execute(*command_parser.current_command.command_chain.map(&:name)) exit end end |
#usage_arguments ⇒ Object
:nodoc:
675 676 677 |
# File 'lib/cmdparse.rb', line 675 def usage_arguments #:nodoc: "[COMMAND COMMAND...]" end |