Path::Dispatcher::Declarative - sugary dispatcher
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);
Jifty::Dispatcher rocks!
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.
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).
Performs a dispatch then invokes the "run" in Path::Dispatcher::Dispatch method on it.
Adds a rule to the dispatcher for the given path. The path may be:
This is taken to mean a single token; creates an Path::Dispatcher::Rule::Tokens rule.
This is creates a Path::Dispatcher::Rule::Tokens rule.
This is creates a Path::Dispatcher::Rule::Regex rule.
This is creates a Path::Dispatcher::Rule::CodeRef rule.
Creates a Path::Dispatcher::Rule::Under rule. The contents of the coderef should be nothing other "on" and under calls.
under
Creates a Path::Dispatcher::Rule::Always rule that will continue on to the next rule via next_rule
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.
last_rule
An example:
under show => sub { then { print "Displaying "; }; on inventory => sub { print "inventory:\n"; ... }; on score => sub { print "score:\n"; ... };
Shawn M Moore, <sartak at bestpractical.com>
<sartak at bestpractical.com>
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.
bug-path-dispatcher-declarative at rt.cpan.org
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.
To install Path::Dispatcher::Declarative, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Path::Dispatcher::Declarative
CPAN shell
perl -MCPAN -e shell install Path::Dispatcher::Declarative
For more information on module installation, please visit the detailed CPAN module installation guide.