The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Router::Dumb::Route - just one dumb route for use in a big dumb router

VERSION

version 0.006

OVERVIEW

Router::Dumb::Route objects represent paths that a Router::Dumb object can route to. They are usually created by calling the add_route method on a router.

PERL VERSION

This library should run on perls released even a long time ago. It should work on any version of perl released in the last five years.

Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.

ATTRIBUTES

target

The route's target is a string that can be used, for example, to give a file path or URL for the resource to which the user should be directed. Its meaning is left up to Router::Dumb's user.

parts

The parts attribute is an arrayref of strings that make up the route.

constraints

The constraints attribute holds a hashref of Moose type constraints objects, up to one for each placeholder.

METHODS

parts

This method returns a list of the contents of the parts attribute.

part_count

get_part

  my $part = $route->get_part( $n );

This returns the string located at position $n in the parts array.

path

This returns the /-joined list of path parts, or the empty string if parts is empty.

normalized_path

This method behaves like path, but placeholder parts are replaced with numbers so that, for example, instead of returning foo/:bar/baz/:quux we would return foo/:1/baz/:2. This normalization is used to prevent route collision.

is_slurpy

This method returns true if the path ends in the slurpy *.

has_params

This method returns true if any of the route's path parts is a placeholder (i.e., starts with a colon).

constraint_names

This method returns a list of all the placeholders for which a constraint is registered.

constraint_for

  my $tc = $route->constraint_for( $placeholder_name );

check

  my $match_or_undef = $route->check( $str );

This is the method used by the router to see if each route will accept the string. If it matches, it returns a match object. Otherwise, it returns false.

AUTHOR

Ricardo Signes <cpan@semiotic.systems>

COPYRIGHT AND LICENSE

This software is copyright (c) 2022 by Ricardo Signes.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.