Spike

 view release on metacpan or  search on metacpan

lib/Spike/Site/Request.pm  view on Meta::CPAN

        @{$self->_named_url_parameters},
    );
}

sub safe_path {
    my $self = shift;

    if (!defined $self->env->{'spike.request.safe_path'}) {
        my @parts;

        for my $part (grep { defined && length } split m!/+!, $self->path_info) {
            $part =~ s!\0!!g;

            if ($part eq '.') {
                # do nothing
            }
            elsif ($part eq '..') {
                pop @parts;
            }
            else {
                push @parts, $part;

lib/Spike/Site/Router.pm  view on Meta::CPAN

        $self->_try_static($req, $res, $path) ? qw(GET) : ();

    my @handlers = $self->cache->get($path);

    if (!@handlers) {
        my ($found, $last_found) = $self->route->find($path);

        @handlers = (
            $found,
            $self->_find_handlers($found || $last_found),
            [ split m!/!, $path ],
        );

        $self->cache->store($path, @handlers);
    }

    my ($route, $prepare, $finalize, $errors, $names, $values) = @handlers;

    $req->_bind_named_url_parameters(zip @$names, @$values);

    my $handler;



( run in 0.718 second using v1.01-cache-2.11-cpan-71847e10f99 )