| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Terse::View::TT; |
|
2
|
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
69022
|
use 5.006; |
|
|
1
|
|
|
|
|
4
|
|
|
4
|
1
|
|
|
1
|
|
6
|
use strict; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
32
|
|
|
5
|
1
|
|
|
1
|
|
6
|
use warnings; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
57
|
|
|
6
|
|
|
|
|
|
|
our $VERSION = 0.01; |
|
7
|
|
|
|
|
|
|
|
|
8
|
1
|
|
|
1
|
|
6
|
use base qw/Terse::View/; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
602
|
|
|
9
|
|
|
|
|
|
|
|
|
10
|
1
|
|
|
1
|
|
108208
|
use Template; |
|
|
1
|
|
|
|
|
20061
|
|
|
|
1
|
|
|
|
|
372
|
|
|
11
|
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
sub build_view { |
|
13
|
0
|
|
|
0
|
0
|
|
my ($self, $config) = @_; |
|
14
|
|
|
|
|
|
|
$config = $self->app_config = { |
|
15
|
|
|
|
|
|
|
EVAL_PERL => 0, |
|
16
|
|
|
|
|
|
|
INCLUDE_PATH => 'root/src', |
|
17
|
|
|
|
|
|
|
TEMPLATE_EXTENSION => 'tt', |
|
18
|
|
|
|
|
|
|
CLASS => 'Template', |
|
19
|
0
|
|
|
|
|
|
%{ $config } |
|
|
0
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
}; |
|
21
|
0
|
|
|
|
|
|
$self->{template} = $config->{CLASS}->new($config); |
|
22
|
0
|
|
|
|
|
|
return $self; |
|
23
|
|
|
|
|
|
|
} |
|
24
|
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
sub render { |
|
26
|
0
|
|
|
0
|
0
|
|
my ($self, $t, $data) = @_; |
|
27
|
0
|
|
|
|
|
|
my $template = $data->{template}; |
|
28
|
0
|
0
|
|
|
|
|
if (!$template) { |
|
29
|
0
|
|
|
|
|
|
$template = $t->response_namespace; |
|
30
|
0
|
|
|
|
|
|
my $handler = $t->response_handler; |
|
31
|
0
|
0
|
|
|
|
|
if ($template !~ m/$handler$/) { |
|
32
|
0
|
|
|
|
|
|
$template .= '/' . $handler; |
|
33
|
|
|
|
|
|
|
} |
|
34
|
0
|
|
|
|
|
|
$template .= '.' . $self->app_config->TEMPLATE_EXTENSION; |
|
35
|
|
|
|
|
|
|
} |
|
36
|
0
|
0
|
|
|
|
|
unless ($template) { |
|
37
|
0
|
0
|
|
|
|
|
return $self->can('handle_error') ? $self->handle_error('Error - Cannot find template') : ('text/html', ' Error - Cannot find template '); |
|
38
|
|
|
|
|
|
|
} |
|
39
|
0
|
0
|
0
|
|
|
|
$self->template->{SERVICE}->{WRAPPER} = ($data->{NO_WRAPPER} || (!$data->WRAPPER && ! $self->app_config->WRAPPER)) |
|
|
|
|
0
|
|
|
|
|
|
40
|
|
|
|
|
|
|
? [] |
|
41
|
|
|
|
|
|
|
: [($data->WRAPPER || $self->app_config->WRAPPER) . '.' . $self->app_config->TEMPLATE_EXTENSION]; |
|
42
|
0
|
|
|
|
|
|
my $output = eval { $self->render_template($template, $data) }; |
|
|
0
|
|
|
|
|
|
|
|
43
|
0
|
0
|
|
|
|
|
if ($@) { |
|
44
|
0
|
0
|
|
|
|
|
return $self->can('handle_error') ? $self->handle_error($@) : ('text/html', $@); |
|
45
|
|
|
|
|
|
|
} |
|
46
|
0
|
|
|
|
|
|
return ('text/html', $output); |
|
47
|
|
|
|
|
|
|
} |
|
48
|
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
sub render_template { |
|
50
|
0
|
|
|
0
|
0
|
|
my ($self, $template, $data) = @_; |
|
51
|
0
|
|
|
|
|
|
my $output; |
|
52
|
0
|
0
|
|
|
|
|
unless ($self->template->process( $template, {%{$data}}, \$output )) { |
|
|
0
|
|
|
|
|
|
|
|
53
|
0
|
|
|
|
|
|
die $self->template->error; |
|
54
|
|
|
|
|
|
|
} |
|
55
|
0
|
|
|
|
|
|
return $output; |
|
56
|
|
|
|
|
|
|
} |
|
57
|
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
1; |
|
59
|
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
__END__ |