debian man page for router::simple::cookbook

Query: router::simple::cookbook

OS: debian

Section: 3pm

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

Router::Simple::Cookbook(3pm)				User Contributed Perl Documentation			     Router::Simple::Cookbook(3pm)

NAME
Router::Simple::Cookbook - The Router::Simple Cookbook
FAQ
How to create Sinatra-ish framework with Router::Simple? Please read the following example code. package MySinatraish; use Router::Simple; use Plack::Request; sub import { my $pkg = caller(0); my $router = Router::Simple->new(); my $any = sub ($$;$) { my ($pattern, $dest, $opt) = do { if (@_ == 3) { my ($methods, $pattern, $code) = @_; ($pattern, {code => $code}, +{method => [ map { uc $_ } @$methods ]}); } else { my ($pattern, $code) = @_; ($pattern, {code => $code}, +{}); } }; $router->connect( $pattern, $dest, $opt, ); }; no strict 'refs'; # any [qw/get post delete/] => '/bye' => sub { ... }; # any '/bye' => sub { ... }; *{"${pkg}::any"} = $any; *{"${pkg}::get"} = sub { $any->([qw/GET HEAD/], $_[0], $_[1]); }; *{"${pkg}::post"} = sub { $any->([qw/POST/], $_[0], $_[1]); }; *{"${pkg}::as_psgi_app"} = sub { return sub { if (my $p = $router->match($_[0])) { [200, [], [$p->{code}->()]]; } else { [404, [], ['not found']]; } } }; } package MyApp; use MySinatraish; get '/' => sub { 'top'; }; post '/new' => sub { 'posted'; }; as_psgi_app; How to switch from HTTPx::Dispatcher? HTTPx::Dispatcher is class specific declararative router. package MyApp::Dispatcher; use HTTPx::Dspatcher; connect '/', {controller => 'foo', action => 'bar'}; 1; The following script is same as above. package MyApp::Dispatcher; use Router::Simple::Declare; my $router = router { connect '/', {controller => 'foo', action => 'bar'}; }; sub match { $router->match() } How to use Router::Simple with non-strictly-MVC application? use Router::Simple::Declare; my $router = router { connect '/foo/bar/' => { 'target' => '/foobar.asp' }; connect '/topics/:topic' => { target => '/my-topic.asp' }; connect '/products/{Category:.*}' => { target => '/products.asp', Category => 'All' }; connect '/zipcode/{zip:[0-9]{5,5}}' => {target => '/zipcode.asp' }; }; You can pass the target path as destination.
AUTHOR
Tokuhiro Matsuno <tokuhirom AAJKLFJEF GMAIL COM>
LICENSE
Copyright (C) Tokuhiro Matsuno This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Router::Simple perl v5.14.2 2011-05-15 Router::Simple::Cookbook(3pm)
Related Man Pages
dbix::simple::result::rowobject(3) - centos
http::server::simple::authen(3pm) - debian
path::dispatcher(3pm) - debian
router::simple(3pm) - debian
snmp::info::layer3::microsoft(3pm) - debian
Similar Topics in the Unix Linux Community
How to config router on Linux
DSL Router
Routing DSL to Unix from Windows
Shell Scripting for Router, Switch &amp; FW deviation
UNIX script to compare 3rd column value with first column and display