Skip to content

ark-framework/Path-AttrRouter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 typester@cpan.org

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Perl 100.0%