++ed by:
KOORCHIK AWNCORP RHAEN KARJALA MARIOROY

122 PAUSE users
156 non-PAUSE users.

Sebastian Riedel

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.

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.

SEE ALSO

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