Provided by: libmojolicious-perl_4.63+dfsg-1_all bug

NAME

       Mojolicious::Routes::Match - Find routes

SYNOPSIS

         use Mojolicious::Controller;
         use Mojolicious::Routes;
         use Mojolicious::Routes::Match;

         # 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 $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.

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.