Provided by: libapp-cmd-perl_0.331-1_all bug

NAME

       App::Cmd::Setup - helper for setting up App::Cmd classes

VERSION

       version 0.331

OVERVIEW

       App::Cmd::Setup is a helper library, used to set up base classes that will be used as part
       of an App::Cmd program.  For the most part you should refer to the tutorial for how you
       should use this library.

       This class is useful in three scenarios:

       when writing your App::Cmd subclass
           Instead of writing:

             package MyApp;
             use base 'App::Cmd';

           ...you can write:

             package MyApp;
             use App::Cmd::Setup -app;

           The benefits of doing this are mostly minor, and relate to sanity-checking your class.
           The significant benefit is that this form allows you to specify plugins, as in:

             package MyApp;
             use App::Cmd::Setup -app => { plugins => [ 'Prompt' ] };

           Plugins are described in App::Cmd::Tutorial and App::Cmd::Plugin.

       when writing abstract base classes for commands
           That is: when you write a subclass of App::Cmd::Command that is intended for other
           commands to use as their base class, you should use App::Cmd::Setup.  For example, if
           you want all the commands in MyApp to inherit from MyApp::Command, you may want to
           write that package like this:

             package MyApp::Command;
             use App::Cmd::Setup -command;

           Do not confuse this with the way you will write specific commands:

             package MyApp::Command::mycmd;
             use MyApp -command;

           Again, this form mostly performs some validation and setup behind the scenes for you.
           You can use "base" if you prefer.

       when writing App::Cmd plugins
           App::Cmd::Plugin is a mechanism that allows an App::Cmd class to inject code into all
           its command classes, providing them with utility routines.

           To write a plugin, you must use App::Cmd::Setup.  As seen above, you must also use
           App::Cmd::Setup to set up your App::Cmd subclass if you wish to consume plugins.

           For more information on writing plugins, see App::Cmd::Manual and App::Cmd::Plugin.

AUTHOR

       Ricardo Signes <rjbs@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2016 by Ricardo Signes.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.