path::dispatcher::declarative(3pm) [debian man page]
Path::Dispatcher::Declarative(3pm) User Contributed Perl Documentation Path::Dispatcher::Declarative(3pm)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:
";
...
};
on score => sub {
print "score:
";
...
};
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.
perl v5.10.1 2010-11-02 Path::Dispatcher::Declarative(3pm)
Check Out this Related Man Page
Log::Report::Dispatcher::File(3pm) User Contributed Perl Documentation Log::Report::Dispatcher::File(3pm)NAME
Log::Report::Dispatcher::File - send messages to a file or file-handle
INHERITANCE
Log::Report::Dispatcher::File
is a Log::Report::Dispatcher
SYNOPSIS
dispatcher Log::Report::Dispatcher::File => 'stderr'
, to => *STDERR, accept => 'NOTICE-';
# close a dispatcher
dispatcher close => 'stderr';
# let dispatcher open and close the file
dispatcher FILE => 'mylog', to => '/var/log/mylog'
, charset => 'utf-8';
...
dispatcher close => 'mylog'; # will close file
# open yourself, then also close yourself
open OUT, ">:encoding('iso-8859-1')", '/var/log/mylog'
or fault "...";
dispatcher FILE => 'mylog', to => *OUT;
...
dispatcher close => 'mylog';
close OUT;
# dispatch into a scalar
my $output = '';
open $outfile, '>', $output;
dispatcher FILE => 'into-scalar', to => $outfile;
...
dispatcher close => 'into-scalar';
print $output;
DESCRIPTION
This basic file logger accepts an file-handle or filename as destination.
METHODS
Constructors
$obj->close
Only when initiated with a FILENAME, the file will be closed. In any other case, nothing will be done.
Log::Report::Dispatcher::File->new(TYPE, NAME, OPTIONS)
-Option--Defined in --Default
accept Log::Report::Dispatcher depend on mode
charset Log::Report::Dispatcher LOCALE
format_reason Log::Report::Dispatcher 'LOWERCASE'
locale Log::Report::Dispatcher <system locale>
mode Log::Report::Dispatcher 'NORMAL'
replace false
to <required>
accept => REASONS
charset => CHARSET
format_reason => 'UPPERCASE'|'LOWERCASE'|'UCFIRST'|'IGNORE'|CODE
locale => LOCALE
mode => 'NORMAL'|'VERBOSE'|'ASSERT'|'DEBUG'|0..3
replace => BOOLEAN
Only used in combination with a FILENAME: throw away the old file if it exists. Probably you wish to append to existing information.
Use the LOCALE setting by default, which is LC_CTYPE or LC_ALL or LANG (in that order). If these contain a character-set which Perl
understands, then that is used, otherwise silently ignored.
to => FILENAME|FILEHANDLE|OBJECT
You can either specify a FILENAME, which is opened in append mode with autoflush on. Or pass any kind of FILE-HANDLE or some OBJECT
which implements a "print()" method. You probably want to have autoflush enabled on your FILE-HANDLES.
When cleaning-up the dispatcher, the file will only be closed in case of a FILENAME.
Accessors
$obj->filename
Returns the name of the opened file, or "undef" in case this dispatcher was started from a file-handle or file-object.
$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::File->collectLocation
See "Logging" in Log::Report::Dispatcher
$obj->collectStack([MAXDEPTH])
Log::Report::Dispatcher::File->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::File->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::File(3pm)