NAME
App::CmdDispatch::Help - Provide help functionality for the CmdDispatch module
VERSION
This document describes App::CmdDispatch::Help version 0.3
SYNOPSIS
use App::CmdDispatch::Help;
This module is mostly loaded directly by the App::CmdDispatch module when needed. At present, there are very few reasons for someone to use it directly.
DESCRIPTION
This module encapsulates the help/hint system for the App::CmdDispatch module.
INTERFACE
App::CmdDispatch::Help->new( $dispatch, $command, $config )
Construct a new object of type App::CmdDispatch::Help
. This object can handle the normal help and hint functionality of the commands in the dispatch table.
The first parameter is a reference to the App::CmdDispatch object that contains this Help object. It is used to access the command table and the IO functionality.
The second parameter is the command hash at the time of creation. In order to provide appropiate help, the command hash should have a few extra pieces of information associated with each command. The following keys are extracted from the description hash of each command.
- clue
-
This text is a short blurb showing the format of the command.
- help
-
This text is a longer piece of text that describes the commands parameters and functionality.
The third parameter is the configuration hash. This contains some values that modify the functionality of the help system. The keys of interest are
- help:indent_hint
-
This string is prepended to the hint for each command. The default value is 2 spaces.
- help:pre_hint
-
This string contains text that is displayed before the list of command hints if the hints for all commands are requested. The default value is empty.
- help:post_hint
-
This string contains text that is displayed after the list of command and alias hints if the hints for all commands and aliases are requested. The default value is empty.
- help:indent_help
-
This string is prepended to the hint for each command. The default value is 8 spaces.
- help:pre_help
-
This string contains text that is displayed before the list of command help if the help for all commands are requested. The default value is empty.
- help:post_help
-
This string contains text that is displayed after the list of command and alias help if the help for all commands and aliases are requested. The default value is empty.
hint( $dispatch, $cmd )
This method prints a short hint listing all commands and aliases or just the hint for the supplied command.
help( $dispatch, $cmd )
This method prints help for the program or just help on the supplied command.
normalize_command_help( $table )
This method takes a hash of commands and fills in whatever help/hint information that it can for the information that is available. Although not perfect, it does ensure that there is some information for every command.
sort_commands( @cmds )
This subroutine sorts the list of commands. The resulting list contains all of the commands except help and hint in sorted order, followed by hint then help.
CONFIGURATION AND ENVIRONMENT
App::CmdDispatch::Help
requires no configuration files or environment variables.
DEPENDENCIES
None.
INCOMPATIBILITIES
None reported.
BUGS AND LIMITATIONS
No bugs have been reported.
AUTHOR
G. Wade Johnson wade@anomaly.org
LICENCE AND COPYRIGHT
Copyright (c) 2013, G. Wade Johnson wade@anomaly.org
. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
DISCLAIMER OF WARRANTY
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.