Skip to content

HTTP::Router provides a Merb-like way of constructing routing tables.

Notifications You must be signed in to change notification settings

masaki/http-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6c9c0aa · Aug 13, 2010
Aug 13, 2010
Aug 13, 2010
Apr 21, 2009
Mar 17, 2010
Apr 4, 2009
Sep 22, 2009
Mar 18, 2010
Apr 4, 2009
Feb 28, 2010
Mar 17, 2010
Mar 17, 2010

Repository files navigation

NAME

HTTP::Router - Yet Another Path Router for HTTP

SYNOPSIS

use HTTP::Router;

my $router = HTTP::Router->new;

my $route = HTTP::Router::Route->new(
    path       => '/',
    conditions => { method => 'GET' },
    params     => { controller => 'Root', action => 'index' },
);
$router->add_route($route);
# or
$router->add_route('/' => (
    conditions => { method => 'GET' },
    params     => { controller => 'Root', action => 'index' },
));

# GET /
my $match = $router->match($req);
$match->params;  # { controller => 'Root', action => 'index' }
$match->uri_for; # '/'

DESCRIPTION

HTTP::Router provides a way of constructing routing tables.

If you are interested in a Merb-like constructing way, please check HTTP::Router::Declare.

METHODS

new

Returns a HTTP::Router object.

add_route($route)

add_route($path, %args)

Adds a new route. You can specify HTTP::Router::Route object, or path string and options pair.

example:

my $route = HTTP::Router::Route->new(
    path       => '/',
    conditions => { method => 'GET' },
    params     => { controller => 'Root', action => 'index' },
);

$router->add_route($route);

equals to:

$router->add_route('/' => (
    conditions => { method => 'GET' },
    params     => { controller => 'Root', action => 'index' },
));

routes

Returns registered routes.

reset

Clears registered routes.

freeze

Creates inline matcher using registered routes.

thaw

Clears inline matcher.

is_frozen

Returns true if inline matcher is defined.

match($req)

Returns a HTTP::Router::Match object that matches a given request. If no routes match, it returns undef.

route_for($req)

Returns a HTTP::Router::Route object that matches a given request. If no routes match, it returns undef.

AUTHOR

NAKAGAWA Masaki <[email protected]>

Takatoshi Kitano <[email protected]>

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

HTTP::Router::Declare, HTTP::Router::Route, HTTP::Router::Match,

MojoX::Routes, http://merbivore.com/, HTTPx::Dispatcher, Path::Router, Path::Dispatcher