File Coverage

File:lib/Railsish.pm
Coverage:92.5%

linestmtbrancondsubpodtimecode
1package Railsish;
2# ABSTRACT: A web application framework.
3
4
2
2
2
17
4
18
use strict;
5
2
2
2
18
5
13
use warnings;
6
7
2
2
2
85
6
35
use HTTP::Engine::Response;
8
2
2
2
161
8
37
use UNIVERSAL::require;
9
10my $app_package;
11
12sub import {
13
2
11
    $app_package = caller;
14
15
2
2
2
21
6
13
    no strict;
16
2
9
    for (qw(handle_request)) {
17
2
2
10
33
        *{"$app_package\::$_"} = \&$_;
18    }
19}
20
21sub handle_request {
22
1
0
3
    my $request = shift;
23
1
14
    my $response = HTTP::Engine::Response->new;
24
25
1
8
    my $path = $request->request_uri;
26
27
1
11
    my ($controller) = $path =~ m{^/(\w+)}s;
28
1
8
    $controller ||= 'welcome';
29
30
1
9
    my $controller_class = $app_package . "::" . ucfirst($controller) . "Controller";
31
1
14
    $controller_class->require or die $@;
32
33
1
48
    $controller_class->dispatch($request, $response);
34
35
1
8
    return $response;
36}
37
381;
39
40 - 48
=head1 DESCRIPTION

This is a web app framework that is still very experimental.

=head1 EXAMPLE

At this moment, see t/SimpleApp for how to use this web framework.

=cut
49