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.
endpoint
my
$endpoint
=
$match
->endpoint;
$match
=
$match
->endpoint(Mojolicious::Routes::Route->new);
The route endpoint that matched.
root
my
$root
=
$match
->root;
$match
=
$match
->root(Mojolicious::Routes->new);
The root of the route structure.
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
$path
=
$match
->path_for;
my
$path
=
$match
->path_for(
foo
=>
'bar'
);
my
$path
=
$match
->path_for({
foo
=>
'bar'
});
my
$path
=
$match
->path_for(
'named'
);
my
$path
=
$match
->path_for(
'named'
,
foo
=>
'bar'
);
my
$path
=
$match
->path_for(
'named'
, {
foo
=>
'bar'
});
my
(
$path
,
$ws
) =
$match
->path_for;
my
(
$path
,
$ws
) =
$match
->path_for(
foo
=>
'bar'
);
my
(
$path
,
$ws
) =
$match
->path_for({
foo
=>
'bar'
});
my
(
$path
,
$ws
) =
$match
->path_for(
'named'
);
my
(
$path
,
$ws
) =
$match
->path_for(
'named'
,
foo
=>
'bar'
);
my
(
$path
,
$ws
) =
$match
->path_for(
'named'
, {
foo
=>
'bar'
});
Render matching route with parameters into path.