Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

router::simple::cookbook(3pm) [debian man page]

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)

Check Out this Related Man Page

DBIx::Simple::Result::RowObject(3)			User Contributed Perl Documentation			DBIx::Simple::Result::RowObject(3)

NAME
DBIx::Simple::Result::RowObject - Simple result row object class DESCRIPTION
This class is the default for the "object" and "objects" result object methods. Mainly, it provides syntactic sugar at the expense of performance. Instead of writing my $r = $db->query('SELECT foo, bar FROM baz')->hash; do_something_with $r->{foo}, $r->{bar}; you may write my $r = $db->query('SELECT foo, bar FROM baz')->object; do_something_with $r->foo, $r->bar; This class is a subclass of Object::Accessor, which provides per-object (rather than per-class) accessors. Your records must not have columns names like these: * can * ls_accessors * ls_allow * mk_accessor * mk_clone * mk_flush * mk_verify * new * register_callback * ___autoload * ___callback * ___debug * ___error * ___get * ___set And of course DESTROY and AUTOLOAD, and anything that new versions of Object::Accessor might add. DBIx::Simple::OO DBIx::Simple::OO is a third party module by Jos Boumans that provided "object" and "objects" to DBIx::Simple. Similar functionality is now built in, in part inspired by DBIx::Simple:OO. Using DBIx::Simple 1.33 or newer together with DBIx::Simple::OO 0.01 will result in method name clash. DBIx::Simple::Result::RowObject was written to be compatible with DBIx::Simple::OO::Item, except for the name, so "isa" calls still need to be changed. In practice, DBIx::Simple 1.33 makes DBIx::Simple::OO obsolete. AUTHOR
Juerd Waalboer <juerd@cpan.org> <http://juerd.nl/> SEE ALSO
DBIx::Simple perl v5.16.3 2010-12-06 DBIx::Simple::Result::RowObject(3)
Man Page