Mojolicious::Routes::Route - Route container
use Mojolicious::Routes::Route; my $r = Mojolicious::Routes::Route->new;
Mojolicious::Routes::Route is the route container used by Mojolicious::Routes.
Mojolicious::Routes::Route implements the following attributes.
block
my $block = $r->block; $r = $r->block(1);
Allow this route to match even if it's not an endpoint, used for waypoints.
children
my $children = $r->children; $r = $r->children([Mojolicious::Routes::Route->new]);
The children of this routes object, used for nesting routes.
inline
my $inline = $r->inline; $r = $r->inline(1);
Allow bridge semantics for this route.
bridge
parent
my $parent = $r->parent; $r = $r->parent(Mojolicious::Routes::Route->new);
The parent of this route, used for nesting routes.
partial
my $partial = $r->partial; $r = $r->partial(1);
Route has no specific end, remaining characters will be captured in path.
path
pattern
my $pattern = $r->pattern; $r = $r->pattern(Mojolicious::Routes::Pattern->new);
Pattern for this route, defaults to a Mojolicious::Routes::Pattern object.
Mojolicious::Routes::Route inherits all methods from Mojo::Base and implements the following ones.
new
my $r = Mojolicious::Routes::Route->new; my $r = Mojolicious::Routes::Route->new('/:controller/:action');
Construct a new Mojolicious::Routes::Route object.
add_child
$r = $r->add_child(Mojolicious::Route->new);
Add a new child to this route.
any
my $route = $r->any('/:foo' => sub {...}); my $route = $r->any(['GET', 'POST'] => '/:foo' => sub {...});
Generate route matching any of the listed HTTP request methods or all. See also the Mojolicious::Lite tutorial for more argument variations.
my $bridge = $r->bridge; my $bridge = $r->bridge('/:controller/:action');
Add a new bridge to this route as a nested child.
delete
my $route = $r->delete('/:foo' => sub {...});
Generate route matching only DELETE requests. See also the Mojolicious::Lite tutorial for more argument variations.
DELETE
detour
$r = $r->detour(action => 'foo'); $r = $r->detour({action => 'foo'}); $r = $r->detour('controller#action'); $r = $r->detour('controller#action', foo => 'bar'); $r = $r->detour('controller#action', {foo => 'bar'}); $r = $r->detour($app); $r = $r->detour($app, foo => 'bar'); $r = $r->detour($app, {foo => 'bar'}); $r = $r->detour('MyApp'); $r = $r->detour('MyApp', foo => 'bar'); $r = $r->detour('MyApp', {foo => 'bar'});
Set default parameters for this route and allow partial matching to simplify application embedding.
find
my $route = $r->find('foo');
Find child route by name, custom names have precedence over automatically generated ones.
get
my $route = $r->get('/:foo' => sub {...});
Generate route matching only GET requests. See also the Mojolicious::Lite tutorial for more argument variations.
GET
has_conditions
my $success = $r->has_conditions;
Check if this route has active conditions.
has_custom_name
my $success = $r->has_custom_name;
Check if this route has a custom name.
has_websocket
my $success = $r->has_websocket;
Check if this route has a WebSocket ancestor.
is_endpoint
my $success = $r->is_endpoint;
Check if this route qualifies as an endpoint.
is_websocket
my $success = $r->is_websocket;
Check if this route is a WebSocket.
name
my $name = $r->name; $r = $r->name('foo');
The name of this route, defaults to an automatically generated name based on the route pattern. Note that the name current is reserved for refering to the current route.
current
options
my $route = $r->options('/:foo' => sub {...});
Generate route matching only OPTIONS requests. See also the Mojolicious::Lite tutorial for more argument variations.
OPTIONS
over
my $over = $r->over; $r = $r->over(foo => qr/\w+/);
Activate conditions for this route. Note that this automatically disables the routing cache, since conditions are too complex for caching.
parse
$r = $r->parse('/:controller/:action');
Parse a pattern.
patch
my $route = $r->patch('/:foo' => sub {...});
Generate route matching only PATCH requests. See also the Mojolicious::Lite tutorial for more argument variations.
PATCH
post
my $route = $r->post('/:foo' => sub {...});
Generate route matching only POST requests. See also the Mojolicious::Lite tutorial for more argument variations.
POST
put
my $route = $r->put('/:foo' => sub {...});
Generate route matching only PUT requests. See also the Mojolicious::Lite tutorial for more argument variations.
PUT
render
my $path = $r->render($suffix); my $path = $r->render($suffix, {foo => 'bar'});
Render route with parameters into a path.
root
my $root = $r->root;
The Mojolicious::Routes object this route is an ancestor of.
route
my $route = $r->route('/:c/:a', a => qr/\w+/);
Add a new nested child to this route.
to
my $to = $r->to; $r = $r->to(action => 'foo'); $r = $r->to({action => 'foo'}); $r = $r->to('controller#action'); $r = $r->to('controller#action', foo => 'bar'); $r = $r->to('controller#action', {foo => 'bar'}); $r = $r->to($app); $r = $r->to($app, foo => 'bar'); $r = $r->to($app, {foo => 'bar'}); $r = $r->to('MyApp'); $r = $r->to('MyApp', foo => 'bar'); $r = $r->to('MyApp', {foo => 'bar'});
Set default parameters for this route.
to_string
my $string = $r->to_string;
Stringify the whole route.
under
my $route = $r->under(sub {...}); my $route = $r->under('/:foo');
Generate bridges. See also the Mojolicious::Lite tutorial for more argument variations.
via
my $methods = $r->via; $r = $r->via('GET'); $r = $r->via(qw/GET POST/); $r = $r->via([qw/GET POST/]);
Restrict HTTP methods this route is allowed to handle, defaults to no restrictions.
waypoint
my $r = $r->waypoint('/:c/:a', a => qr/\w+/);
Add a waypoint to this route as nested child.
websocket
my $websocket = $r->websocket('/:foo' => sub {...});
Generate route matching only WebSocket handshakes. See also the Mojolicious::Lite tutorial for more argument variations.
WebSocket
In addition to the attributes and methods above you can also call shortcuts on Mojolicious::Routes::Route objects.
$r->add_shortcut(firefox => sub { my ($r, $path) = @_; $r->get($path, agent => qr/Firefox/); }); $r->firefox('/welcome')->to('firefox#welcome'); $r->firefox('/bye')->to('firefox#bye);
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
To install Mojolicious, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious
CPAN shell
perl -MCPAN -e shell install Mojolicious
For more information on module installation, please visit the detailed CPAN module installation guide.