Router-Pygmy
view release on metacpan or search on metacpan
lib/Router/Pygmy.pm view on Meta::CPAN
my $route = $this->{route_for}{$name}
or croak "No route '$name'";
return $route->path_for(@_);
}
# return (name, \@args)
sub match {
my ( $this, $path ) = @_;
my @parts = grep { length($_) > 0 } split m{/}, $path;
my @args;
my $lookup = $this->{lookup};
while (@parts) {
my $part = shift @parts;
if ( my $by_path_part = $lookup->[$PATH_PART_IDX]{$part} ) {
$lookup = $by_path_part;
}
lib/Router/Pygmy/Route.pm view on Meta::CPAN
sub new {
my ($class, %fields) = @_;
return bless(\%fields, $class);
}
sub parse {
my ( $class, $spec ) = @_;
my ( @arg_names, @arg_idxs, @parts );
my $i = 0;
for my $part ( grep { $_ } split m{/}, $spec ) {
my $is_arg = $part =~ s/^://;
if ($is_arg) {
push @parts, undef;
push @arg_idxs, $i;
push @arg_names, $part;
}
else {
push @parts, $part;
}
$i++;
( run in 0.549 second using v1.01-cache-2.11-cpan-71847e10f99 )