Provided by: libmoosex-runnable-perl_0.03-1_all bug

NAME

       MooseX::Runnable - tag a class as a runnable application

SYNOPSIS

       Create a class, tag it runnable, and provide a "run" method:

           package App::HelloWorld;
           use feature 'say';
           use Moose;

           with 'MooseX::Runnable';

           sub run {
              my ($self,$name) = @_;
              say "Hello, $name.";
              return 0; # success
           }

       Then you can run this class as an application with the included "mx-run" script:

           $ mx-run App::HelloWorld jrockway
           Hello, jrockway.
           $

       "MooseX::Runnable" supports MooseX::Getopt, and other similar systems (and is extensible,
       in case you have written such a system).

DESCRIPTION

       MooseX::Runnable is a framework for making classes runnable applications.  This role
       doesn't do anything other than tell the rest of the framework that your class is a
       runnable application that has a "run" method which accepts arguments and returns the
       process' exit code.

       This is a convention that the community has been using for a while.  This role tells the
       computer that your class uses this convention, and let's the computer abstract away some
       of the tedium this entails.

REQUIRED METHODS

   run
       Your class must implement "run".  It accepts the commandline args (that were not consumed
       by another parser, if applicable) and returns an integer representing the UNIX exit value.
       "return 0" means success.

THINGS YOU GET

   "mx-run"
       This is a script that accepts a "MooseX::Runnable" class and tries to run it, using
       "MooseX::Runnable::Run".

       The syntax is:

         mx-run Class::Name

         mx-run <args for mx-run> -- Class::Name <args for Class::Name>

       for example:

         mx-run -Ilib App::HelloWorld --args --go --here

       or:

         mx-run -Ilib +Persistent --port 8080 -- App::HelloWorld --args --go --here

   "MooseX::Runnable::Run"
       If you don't want to invoke your app with "mx-run", you can write a custom version using
       MooseX::Runnable::Run.

ARCHITECTURE

       "MX::Runnable" is designed to be extensible; users can run plugins from the command-line,
       and application developers can add roles to their class to control behavior.

       For example, if you consume MooseX::Getopt, the command-line will be parsed with
       "MooseX::Getopt".  Any recognized args will be used to instantiate your class, and any
       extra args will be passed to "run".

BUGS

       Many of the plugins shipped are unstable; they may go away, change, break, etc.  If there
       is no documentation for a plugin, it is probably just a prototype.

REPOSITORY

       http://github.com/jrockway/moosex-runnable <http://github.com/jrockway/moosex-runnable>

AUTHOR

       Jonathan Rockway "<jrockway@cpan.org>"

COPYRIGHT

       Copyright (c) 2009 Jonathan Rockway

       This module is Free Software, you can redistribute it under the same terms as Perl itself.