Mojolicious::Routes::Pattern - Route pattern

NAME  SYNOPSIS  DESCRIPTION  ATTRIBUTES  constraints  defaults  placeholder_start  placeholders  quote_end  quote_start  regex  relaxed_start  tree  type_start  types  unparsed  wildcard_start  METHODS  match  match_partial  new  parse  render  SEE ALSO 

NAME

Mojolicious::Routes::Pattern − Route pattern

SYNOPSIS

use Mojolicious::Routes::Pattern;
# Create pattern
my $pattern = Mojolicious::Routes::Pattern−>new('/test/:name');
# Match routes
my $captures = $pattern−>match('/test/sebastian');
say $captures−>{name};

DESCRIPTION

Mojolicious::Routes::Pattern is the core of Mojolicious::Routes.

ATTRIBUTES

Mojolicious::Routes::Pattern implements the following attributes.

constraints

my $constraints = $pattern−>constraints;
$pattern = $pattern−>constraints({foo => qr/\w+/});

Regular expression constraints.

defaults

my $defaults = $pattern−>defaults;
$pattern = $pattern−>defaults({foo => 'bar'});

Default parameters.

placeholder_start

my $start = $pattern−>placeholder_start;
$pattern = $pattern−>placeholder_start(':');

Character indicating a placeholder, defaults to ":".

placeholders

my $placeholders = $pattern−>placeholders;
$pattern = $pattern−>placeholders(['foo', 'bar']);

Placeholder names.

quote_end

my $end = $pattern−>quote_end;
$pattern = $pattern−>quote_end('}');

Character indicating the end of a quoted placeholder, defaults to ">".

quote_start

my $start = $pattern−>quote_start;
$pattern = $pattern−>quote_start('{');

Character indicating the start of a quoted placeholder, defaults to "<".

regex

my $regex = $pattern−>regex;
$pattern = $pattern−>regex($regex);

Pattern in compiled regular expression form.

relaxed_start

my $start = $pattern−>relaxed_start;
$pattern = $pattern−>relaxed_start('*');

Character indicating a relaxed placeholder, defaults to "#".

tree

my $tree = $pattern−>tree;
$pattern = $pattern−>tree([['text', '/foo']]);

Pattern in parsed form. Note that this structure should only be used very carefully since it is very dynamic.

type_start

my $start = $pattern−>type_start;
$pattern = $pattern−>type_start('|');

Character indicating the start of a placeholder type, defaults to ":".

types

my $types = $pattern−>types;
$pattern = $pattern−>types({int => qr/[0−9]+/});

Placeholder types.

unparsed

my $unparsed = $pattern−>unparsed;
$pattern = $pattern−>unparsed('/:foo/:bar');

Raw unparsed pattern.

wildcard_start

my $start = $pattern−>wildcard_start;
$pattern = $pattern−>wildcard_start('*');

Character indicating the start of a wildcard placeholder, defaults to "*".

METHODS

Mojolicious::Routes::Pattern inherits all methods from Mojo::Base and implements the following new ones.

match

my $captures = $pattern−>match('/foo/bar');
my $captures = $pattern−>match('/foo/bar', 1);

Match pattern against entire path, format detection is disabled by default.

match_partial

my $captures = $pattern−>match_partial(\$path);
my $captures = $pattern−>match_partial(\$path, 1);

Match pattern against path and remove matching parts, format detection is disabled by default.

new

my $pattern = Mojolicious::Routes::Pattern−>new;
my $pattern = Mojolicious::Routes::Pattern−>new('/users/:id');
my $pattern = Mojolicious::Routes::Pattern−>new('/user/:id', id => qr/\d+/);
my $pattern = Mojolicious::Routes::Pattern−>new(format => ['json', 'yaml']);

Construct a new Mojolicious::Routes::Pattern object and "parse" pattern if necessary.

parse

$pattern = $pattern−>parse('/user/:id');
$pattern = $pattern−>parse('/user/:id', id=> qr/\d+/);
$pattern = $pattern−>parse(format => ['json', 'yaml']);

Parse pattern.

render

my $path = $pattern−>render({id => 24});
my $path = $pattern−>render({id => 24}, 1);

Render pattern into a path with parameters, format rendering is disabled by default.

SEE ALSO

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.


Updated 2024-01-29 - jenkler.se | uex.se