NAME
App::Dispatcher - generate command-line dispatcher classes
SYNOPSIS
use App::Dispatcher qw/app_dispatcher/;
app_dispatcher( $class, $opt );
DESCRIPTION
This is the interface documentation for the App::Dispatcher class, which is generally not used directly by application authors. To make use of App::Dispatcher in your application you most likely want to be reading App::Dispatcher::Tutorial instead.
App::Dispatcher is a the implementation for the app-dispatcher(1) command. The implementation is contained in a single subroutine with that takes two mandatory arguments:
- app_dispatcher( $class, $opt )
-
- $class
-
The name space under which the command classes will be searched for.
- $opt
-
A Getopt::Long::Descriptive::Opts (or equivalent) object with the following methods:
- inc_dirs
-
A comma-separated list of directories to search in.
- verbose
-
Print out extra details during execution.
- dry_run
-
Don't write out any files to disk.
- force
-
Force the overwriting of existing writeable files.
A successful run of app_dispatcher() results in the creation of 'lib/$class/Dispatcher.pm', which is based on the Command Classes found under 'lib/$class'.
The command classes may have the following methods defined:
- order
-
Optional. An integer to force the order in which commands are displayed.
- usage_desc
-
Optional. The string used for error messgaes. Will be auto-generated from the opt_spec and arg_spec methods if not implemented.
- opt_spec
-
Optional, but at least one of opt_spec or arg_spec should in most cases be implemented. A list of option definitions which will be passed to the describe_options method of Getopt::Long::Descriptive.
- arg_spec
-
Optional, but at least one of opt_spec or arg_spec should in most cases be implemented. A list of argument definitions which will be passed to the describe_options method of Getopt::Long::Descriptive.
- run
-
Optional, but it only makes sense to be left unimplemented if the command requires subcommands. This is the method where the real work is performed.
- abstract
-
Optional. A brief description of the command. Will be pulled from the POD documentation if not implemented.
App::Dispatcher is also its own Command Class. That is, it implements the opt_spec(), arg_spec() and run() methods.
SEE ALSO
app-dispatcher(1), App::Dispatcher::Tutorial(3p)
AUTHOR
Mark Lawrence <nomad@null.net>
COPYRIGHT AND LICENSE
Copyright (C) 2011 Mark Lawrence <nomad@null.net>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.