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