Provided by: libpath-dispatcher-declarative-perl_0.03-1_all bug

NAME

       Path::Dispatcher::Declarative - sugary dispatcher

SYNOPSIS

           package MyApp::Dispatcher;
           use Path::Dispatcher::Declarative -base;

           on score => sub { show_score() };

           on ['wield', qr/^\w+$/] => sub { wield_weapon($2) };

           rewrite qr/^inv/ => "display inventory";

           under display => sub {
               on inventory => sub { show_inventory() };
               on score     => sub { show_score() };
           };

           package Interpreter;
           MyApp::Dispatcher->run($input);

DESCRIPTION

       Jifty::Dispatcher rocks!

KEYWORDS

   dispatcher -> Dispatcher
       Returns the Path::Dispatcher object for this class; the object that the sugar is
       modifying. This is useful for adding custom rules through the regular API, and inspection.

   dispatch path -> Dispatch
       Invokes the dispatcher on the given path and returns a Path::Dispatcher::Dispatch object.
       Acts as a keyword within the same package; otherwise as a method (since these declarative
       dispatchers are supposed to be used by other packages).

   run path, args
       Performs a dispatch then invokes the "run" in Path::Dispatcher::Dispatch method on it.

   on path => sub {}
       Adds a rule to the dispatcher for the given path. The path may be:

       a string
           This is taken to mean a single token; creates an Path::Dispatcher::Rule::Tokens rule.

       an array reference
           This is creates a Path::Dispatcher::Rule::Tokens rule.

       a regular expression
           This is creates a Path::Dispatcher::Rule::Regex rule.

       a code reference
           This is creates a Path::Dispatcher::Rule::CodeRef rule.

   under path => sub {}
       Creates a Path::Dispatcher::Rule::Under rule. The contents of the coderef should be
       nothing other "on" and "under" calls.

   then sub { }
       Creates a Path::Dispatcher::Rule::Always rule that will continue on to the next rule via
       "next_rule"

       The only argument is a coderef that processes normally (like on).

       NOTE: You *can* avoid running a following rule by using "last_rule".

       An example:

           under show => sub {
               then {
                   print "Displaying ";
               };
               on inventory => sub {
                   print "inventory:\n";
                   ...
               };
               on score => sub {
                   print "score:\n";
                   ...
               };

AUTHOR

       Shawn M Moore, "<sartak at bestpractical.com>"

BUGS

       Please report any bugs or feature requests to "bug-path-dispatcher-declarative at
       rt.cpan.org", or through the web interface at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Path-Dispatcher-Declarative>.

COPYRIGHT & LICENSE

       Copyright 2008-2010 Best Practical Solutions.

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