line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Web::API::Mock::Map; |
2
|
5
|
|
|
5
|
|
99
|
use 5.008005; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
201
|
|
3
|
5
|
|
|
5
|
|
21
|
use strict; |
|
5
|
|
|
|
|
9
|
|
|
5
|
|
|
|
|
161
|
|
4
|
5
|
|
|
5
|
|
24
|
use warnings; |
|
5
|
|
|
|
|
9
|
|
|
5
|
|
|
|
|
248
|
|
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
our $VERSION = "0.01"; |
7
|
|
|
|
|
|
|
|
8
|
5
|
|
|
5
|
|
2151
|
use Web::API::Mock::Resource; |
|
5
|
|
|
|
|
11
|
|
|
5
|
|
|
|
|
147
|
|
9
|
5
|
|
|
5
|
|
2916
|
use Router::Simple; |
|
5
|
|
|
|
|
17996
|
|
|
5
|
|
|
|
|
234
|
|
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
use Class::Accessor::Lite ( |
12
|
5
|
|
|
|
|
22
|
new => 1, |
13
|
|
|
|
|
|
|
rw => [ qw/resources router/ ] |
14
|
5
|
|
|
5
|
|
40
|
); |
|
5
|
|
|
|
|
7
|
|
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
sub init { |
17
|
4
|
|
|
4
|
0
|
8
|
my ($self) = @_; |
18
|
|
|
|
|
|
|
|
19
|
4
|
|
|
|
|
19
|
$self->resources({}); |
20
|
|
|
|
|
|
|
|
21
|
4
|
|
|
|
|
63
|
$self->add_resource( '/', Web::API::Mock::Resource->status_404); |
22
|
|
|
|
|
|
|
} |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
sub add_resource { |
26
|
20
|
|
|
20
|
0
|
272
|
my ($self, $url, $args) = @_; |
27
|
|
|
|
|
|
|
|
28
|
20
|
100
|
|
|
|
52
|
$self->router(Router::Simple->new()) unless $self->router; |
29
|
20
|
|
|
|
|
222
|
my $path = sprintf("%s:%s", $args->{method}, $url); |
30
|
20
|
|
|
|
|
56
|
$self->router->connect($path, { |
31
|
|
|
|
|
|
|
url => $url, |
32
|
|
|
|
|
|
|
method => $args->{method} |
33
|
|
|
|
|
|
|
}); |
34
|
|
|
|
|
|
|
|
35
|
20
|
|
66
|
|
|
1693
|
my $resource = $self->resources->{$url} || Web::API::Mock::Resource->new(); |
36
|
20
|
|
|
|
|
430
|
$resource->add({ |
37
|
|
|
|
|
|
|
status => $args->{status}, |
38
|
|
|
|
|
|
|
content_type => $args->{content_type}, |
39
|
|
|
|
|
|
|
method => $args->{method}, |
40
|
|
|
|
|
|
|
header => $args->{header}, |
41
|
|
|
|
|
|
|
body => $args->{body} |
42
|
|
|
|
|
|
|
}); |
43
|
20
|
|
|
|
|
174
|
$self->resources->{$url} = $resource; |
44
|
|
|
|
|
|
|
} |
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
sub request { |
47
|
21
|
|
|
21
|
0
|
27846
|
my ($self, $method, $url) = @_; |
48
|
|
|
|
|
|
|
|
49
|
21
|
|
|
|
|
115
|
my $path = sprintf("%s:%s", $method, $url); |
50
|
21
|
|
|
|
|
75
|
my $match = $self->router->match($path); |
51
|
|
|
|
|
|
|
|
52
|
21
|
50
|
66
|
|
|
1995
|
if ($match && $match->{method} && $match->{url}) { |
|
|
|
66
|
|
|
|
|
53
|
16
|
|
|
|
|
58
|
my $resource = $self->resources->{$match->{url}}; |
54
|
16
|
50
|
|
|
|
155
|
return $resource->response($method) if $resource; |
55
|
|
|
|
|
|
|
} |
56
|
|
|
|
|
|
|
|
57
|
5
|
|
|
|
|
16
|
return; |
58
|
|
|
|
|
|
|
} |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
sub url_list { |
61
|
6
|
|
|
6
|
0
|
4240
|
my ($self) = @_; |
62
|
6
|
|
|
|
|
9
|
return [keys %{$self->resources}]; |
|
6
|
|
|
|
|
25
|
|
63
|
|
|
|
|
|
|
} |
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
1; |