Amon2

 view release on metacpan or  search on metacpan

lib/Amon2/Web/Dispatcher/Lite.pm  view on Meta::CPAN

    Router::Simple::Sinatraish->export_to_level(1);
    my $router = $caller->router;

    no strict 'refs';
    *{"$caller\::dispatch"} = sub {
        my ($klass, $c) = @_;

        if (my $p = $router->match($c->request->env)) {
            return $p->{code}->($c, $p);
        } else {
            if ($router->method_not_allowed) {
                return $c->res_405();
            } else {
                return $c->res_404();
            }
        }
    };
}

1;
__END__

lib/Amon2/Web/Dispatcher/RouterBoom.pm  view on Meta::CPAN

        };
    }

    # class methods
    *{"${caller}::router"} = sub { $router };

    *{"${caller}::dispatch"} = sub {
        my ($class, $c) = @_;

        my $env = $c->request->env;
        if (my ($dest, $captured, $method_not_allowed) = $class->router->match($env->{REQUEST_METHOD}, $env->{PATH_INFO})) {
            if ($method_not_allowed) {
                return $c->res_405();
            }

            my $res = eval {
                if ($dest->{code}) {
                    return $dest->{code}->($c, $captured);
                } else {
                    my $method = $dest->{method};
                    $c->{args} = $captured;
                    return $dest->{class}->$method($c, $captured);



( run in 0.643 second using v1.01-cache-2.11-cpan-cc502c75498 )