File Coverage

File:lib/Railsish/Router.pm
Coverage:81.6%

linestmtbrancondsubpodtimecode
1package Railsish::Router;
2
1
1
1
75
5
11
use Moose;
3
4
1
1
1
103
5
15
use Path::Router;
5
6has "router" => (
7    is => "rw",
8    isa => "Path::Router",
9    lazy_build => 1,
10);
11
12sub _build_router {
13
1
87
    my ($self) = @_;
14
1
10
    return Path::Router->new;
15}
16
17my $APP_ROUTER;
18
19sub connect {
20
2
0
19
    my ($self, $urlish, @vars) = @_;
21
2
16
    $self = $APP_ROUTER unless ref($self);
22
23
2
14
    $self->router->add_route(
24        $urlish => (
25            defaults => { @vars }
26        )
27    );
28}
29
30sub match {
31
2
0
16
    my ($self, $uri) = @_;
32
2
15
    $self = $APP_ROUTER unless ref($self);
33
34
2
14
    $self->router->match($uri)
35}
36
37sub uri_for {
38
1
0
6
    my $self = shift;
39
1
8
    $self = $APP_ROUTER unless ref($self);
40
41
1
7
    $self->router->uri_for(@_);
42}
43
44# this one should be invoked like: Railsish::Router->draw;
45sub draw {
46
1
0
7
    my ($class, $cb) = @_;
47
1
11
    $APP_ROUTER = $class->new;
48
1
75
    $cb->($APP_ROUTER);
49
50
1
93
    return $APP_ROUTER;
51}
52
53__PACKAGE__->meta->make_immutable;
54
551;