File Coverage

blib/lib/Terse/View/TT.pm
Criterion Covered Total %
statement 14 41 34.1
branch 0 16 0.0
condition 0 6 0.0
subroutine 5 8 62.5
pod 0 3 0.0
total 19 74 25.6


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__