Path::Dispatcher::Cookbook(3pm) User Contributed Perl Documentation Path::Dispatcher::Cookbook(3pm)NAME
Path::Dispatcher::Cookbook - A cookbook for Path::Dispatcher
RECIPES
How can I change the path delimiter from a space ' ' to a slash '/'?
When importing the Path::Dispatcher::Declarative sugar, specify the "token_delimiter" option for the "default" group.
package My::Dispatcher;
use Path::Dispatcher::Declarative -base, -default => {
token_delimiter => '/',
};
Or define a subclass of Path::Dispatcher::Declarative with a "token_delimiter" method:
package Web::Dispatcher::Maker;
use base 'Path::Dispatcher::Declarative';
use constant token_delimiter => '/';
package My::Dispatcher;
use Web::Dispatcher::Maker -base;
How can I do rule chaining (like in Catalyst)?
You can use a "chain" rule approximate chaining behavior:
package MyDispatcher;
use Path::Dispatcher::Declarative -base;
under show => sub {
chain {
print "Displaying ";
};
on inventory => sub {
print "inventory:
";
...
};
on score => sub {
print "score:
";
...
};
};
package main;
MyDispatcher->run("show inventory"); # "Displaying inventory:
..."
MyDispatcher->run("show score"); # "Displaying score:
..."
How can I configure tab completion for shells?
First add a dispatcher rule for generating completions based on the path. Here we name it _gencomp, so that if the user types "app _gencomp
hel" it will print out the various completions of "hel".
on qr/^_gencomps*(.*)/ => sub {
my $prefix = shift->pos(1);
$prefix = "" if !defined($prefix);
print "$_
" for dispatcher->complete($prefix);
};
Then tell your shell about how to use _gencomp. For zsh it might look like this (replace "APP" with your binary name):
/usr/share/zsh/site-functions/_APP:
#compdef APP
typeset -a APP_completions
APP_completions=($($words[1] _gencomp $words[2,-1]))
compadd $APP_completions
For bash it might look like this:
/etc/bash_completion.d/APP.bash:
function _APP_()
{
COMPREPLY=($($1 _gencomp ${COMP_WORDS[COMP_CWORD]}))
}
complete -F _APP_ APP
perl v5.12.4 2011-08-30 Path::Dispatcher::Cookbook(3pm)
Check Out this Related Man Page
Log::Report::Dispatcher::Perl(3pm) User Contributed Perl Documentation Log::Report::Dispatcher::Perl(3pm)NAME
Log::Report::Dispatcher::Perl - send messages to die and warn
INHERITANCE
Log::Report::Dispatcher::Perl
is a Log::Report::Dispatcher
SYNOPSIS
dispatcher Log::Report::Dispatcher::Perl => 'default'
, accept => 'NOTICE-';
# close the default dispatcher
dispatcher close => 'default';
DESCRIPTION
Ventilate the problem reports via the standard Perl error mechanisms: "die()", "warn()", and "print()". There can be only one such
dispatcher (per thread), because once "die()" is called, we are not able to return. Therefore, this dispatcher will always be called last.
In the early releases of Log::Report, it tried to simulate the behavior of warn and die using STDERR and exit; however: that is not
possible.
METHODS
Constructors
$obj->close
See "Constructors" in Log::Report::Dispatcher
Log::Report::Dispatcher::Perl->new(TYPE, NAME, OPTIONS)
See "Constructors" in Log::Report::Dispatcher
Accessors
$obj->isDisabled
See "Accessors" in Log::Report::Dispatcher
$obj->mode
See "Accessors" in Log::Report::Dispatcher
$obj->name
See "Accessors" in Log::Report::Dispatcher
$obj->needs
See "Accessors" in Log::Report::Dispatcher
$obj->type
See "Accessors" in Log::Report::Dispatcher
Logging
$obj->collectLocation
Log::Report::Dispatcher::Perl->collectLocation
See "Logging" in Log::Report::Dispatcher
$obj->collectStack([MAXDEPTH])
Log::Report::Dispatcher::Perl->collectStack([MAXDEPTH])
See "Logging" in Log::Report::Dispatcher
$obj->log(HASH-of-OPTIONS, REASON, MESSAGE)
See "Logging" in Log::Report::Dispatcher
$obj->stackTraceLine(OPTIONS)
Log::Report::Dispatcher::Perl->stackTraceLine(OPTIONS)
See "Logging" in Log::Report::Dispatcher
$obj->translate(HASH-of-OPTIONS, REASON, MESSAGE)
See "Logging" in Log::Report::Dispatcher
SEE ALSO
This module is part of Log-Report distribution version 0.94, built on August 23, 2011. Website: http://perl.overmeer.net/log-report/
LICENSE
Copyrights 2007-2011 by Mark Overmeer. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See
http://www.perl.com/perl/misc/Artistic.html
perl v5.14.2 2011-08-23 Log::Report::Dispatcher::Perl(3pm)