NAME
Mojolicious::Routes::Match - Find routes
SYNOPSIS
use
Mojolicious::Routes;
# Routes
my
$r
= Mojolicious::Routes->new;
$r
->get(
'/user/:id'
);
$r
->put(
'/user/:id'
);
# Match
my
$c
= Mojolicious::Controller->new;
my
$match
= Mojolicious::Routes::Match->new(
root
=>
$r
);
$match
->find(
$c
=> {
method
=>
'PUT'
,
path
=>
'/user/23'
});
say
$match
->stack->[0]{id};
# Render
say
$match
->path_for->{path};
say
$match
->path_for(
id
=> 24)->{path};
DESCRIPTION
Mojolicious::Routes::Match finds routes in Mojolicious::Routes structures.
ATTRIBUTES
Mojolicious::Routes::Match implements the following attributes.
endpoint
my
$route
=
$match
->endpoint;
$match
=
$match
->endpoint(Mojolicious::Routes::Route->new);
The route endpoint that matched, usually a Mojolicious::Routes::Route object.
position
my
$position
=
$match
->position;
$match
=
$match
->position(2);
Current position on the "stack", defaults to 0
.
root
my
$root
=
$match
->root;
$match
=
$match
->root(Mojolicious::Routes->new);
The root of the route structure, usually a Mojolicious::Routes object.
stack
my
$stack
=
$match
->stack;
$match
=
$match
->stack([{
action
=>
'foo'
}, {
action
=>
'bar'
}]);
Captured parameters with nesting history.
METHODS
Mojolicious::Routes::Match inherits all methods from Mojo::Base and implements the following new ones.
find
$match
->find(Mojolicious::Controller->new, {
method
=>
'GET'
,
path
=>
'/'
});
Match controller and options against "root" to find an appropriate "endpoint".
path_for
my
$info
=
$match
->path_for;
my
$info
=
$match
->path_for(
foo
=>
'bar'
);
my
$info
=
$match
->path_for({
foo
=>
'bar'
});
my
$info
=
$match
->path_for(
'named'
);
my
$info
=
$match
->path_for(
'named'
,
foo
=>
'bar'
);
my
$info
=
$match
->path_for(
'named'
, {
foo
=>
'bar'
});
Render matching route with parameters into path.