# NAME Path::AttrRouter - Path router for URLs using the attributes # SYNOPSIS package MyController; use parent 'Path::AttrRouter::Controller'; sub index :Path { } sub index2 :Path :Args(2) { } sub index1 :Path :Args(1) { } sub index3 :Path :Args(3) { } package MyController::Args; use parent 'Path::AttrRouter::Controller'; sub index :Path :Args(1) { my ($self, $arg) = @_; } package MyController::Regex; use parent 'Path::AttrRouter::Controller'; sub index :Regex('^regex/(\d+)/(.+)') { my ($self, @captures) = @_; } package main; use Path::AttrRouter; my $router = Path::AttrRouter->new( search_path => 'MyController' ); my $m = $router->match('/args/hoge'); print $m->action->name, "\n"; # => 'index' print $m->action->namespace, "\n"; # => 'args' print $m->args->[0], "\n"; # hoge # DESCRIPTION Path::AttrRouter is a router class specifying definitions by attributes. This is mainly used for method dispatching in web application frameworks. # CONSTRUCTOR ## `my $router = Path::AttrRouter->new(%options)` Options: - search\_path :Str(required) Base package namespace of your controller - action\_class :Str(default: Path::AttrRouter::Action) - action\_cache :Str(optional) `action_cache` path if using action caching The action cache is aimed at impermanent environment, e.g. CGI or development. # METHODS ## `$router->get_action($name:Str, $namespace:Str)` Returns single action object of `$router->action_class` ## `$router->get_actions($name:Str, $namespace:Str)` Returns action objects of array which is bunch of actions ## `$router->make_action_cache` Make action cache ## `$router->match($path:Str $condition:HashRef)` Returns `Path::AttrRouter::Match`\> object ## `$router->print_table` Draw dispatching table. # AUTHOR Daisuke Murase # COPYRIGHT AND LICENSE Copyright (c) 2009 by KAYAC Inc. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module.