File Coverage

blib/lib/App/StaticImageGallery/Base/Source.pm
Criterion Covered Total %
statement 12 37 32.4
branch 0 12 0.0
condition 0 2 0.0
subroutine 4 13 30.7
pod 8 8 100.0
total 24 72 33.3


line stmt bran cond sub pod time code
1             package # hidden from pause
2             App::StaticImageGallery::Base::Source;
3              
4 2     2   1610 use DateTime;
  2         5  
  2         61  
5 2     2   35524 use Template;
  2         14867  
  2         72  
6 2     2   25 use File::Basename ();
  2         6  
  2         40  
7 2     2   13 use parent 'App::StaticImageGallery::Base::NeedDir';
  2         5  
  2         20  
8              
9             sub _build_tt {
10 0     0     my $self = shift;
11 0           my $tt_args = shift;
12              
13 0           $self->{_TT} = Template->new({
14             # INCLUDE_PATH => '', # or list ref
15             INTERPOLATE => 1, # expand "$var" in plain text
16             POST_CHOMP => 1, # cleanup whitespace
17             # PRE_PROCESS => 'header', # prefix each template
18             EVAL_PERL => 0, # evaluate Perl code blocks
19             %$tt_args,
20             });
21             }
22              
23 0     0 1   sub TT { return shift->{_TT} };
24              
25 0     0 1   sub write_style_files { die "write_style_files must be implemented in " . ref(shift) }
26 0     0 1   sub template_config { die "template_config must be implemented in " . ref(shift) }
27 0     0 1   sub image_page_template_name { die "image_page_template_name must be implemented in " . ref(shift) }
28 0     0 1   sub index_page_template_name { die "index_page_template_name must be implemented in " . ref(shift) }
29              
30             sub stash {
31 0     0 1   my ( $self, $stash ) = @_;
32              
33 0 0         $stash->{now} = DateTime->now()
34             unless ( defined $stash->{now} );
35              
36 0 0         $stash->{version} = $App::StaticImageGallery::VERSION
37             unless ( defined $stash->{version} );
38              
39 0 0         $stash->{work_dir} = File::Basename::basename($self->work_dir)
40             unless ( defined $stash->{work_dir} );
41              
42 0 0         $stash->{sig} = $self
43             unless ( defined $stash->{sig} );
44              
45              
46 0           return $stash;
47             };
48              
49             sub write_image_page {
50 0     0 1   my ( $self,$size,$previous,$current,$next ) = @_;
51              
52 0           my $image_filename = $self->data_dir . '/' . $current->original . '.' . $size . '.html';
53 0           $self->msg_verbose(3,"Write image html: %s",$image_filename);
54             # TODO
55             # if ( $self->tt_class->template_config('write_image_html') ){
56 0 0         unless ($self->TT->process( $self->image_page_template_name(), $self->stash({
57             previous => $previous,
58             current => $current,
59             next => $next,
60             size => $size,
61             }), $image_filename )){
62 0           $self->msg("Can't write image html for image %s.\n\tTT-error: %s",
63             $image_filename,$self->TT->error());
64             }
65             # }
66             }
67              
68             sub write_index_page {
69 0     0 1   my ( $self,$images,$dirs,$stash ) = @_;
70 0   0       $stash ||= {};
71              
72 0           my $index_filename = $self->work_dir . '/index.html';
73 0           $self->msg_verbose(3,"Write index.html: %s",$index_filename);
74              
75 0 0         unless($self->TT->process( $self->index_page_template_name(),$self->stash({
76             images => $images,
77             dirs => $dirs,
78             %$stash,
79             }), $index_filename )){
80 0           $self->msg("Can't write index.html: %s.\n\tTT-error: %s",
81             $index_filename,$self->TT->error());
82             }
83             }
84              
85             1;
86             __END__
87              
88             =head1 NAME
89              
90             App::StaticImageGallery::Base::Source
91              
92             =head1 VERSION
93              
94             version 0.002
95              
96             =head1 DESCRIPTION
97              
98             =head1 SYNOPSIS
99              
100             =head1 METHODS
101              
102             =head2 TT
103              
104             =head2 image_page_template_name
105              
106             =head2 index_page_template_name
107              
108             =head2 stash
109              
110             =head2 template_config
111              
112             =head2 write_image_page
113              
114             =head2 write_index_page
115              
116             =head2 write_style_files
117              
118             =head1 AUTHOR
119              
120             See L<App::StaticImageGallery/AUTHOR> and L<App::StaticImageGallery/CONTRIBUTORS>.
121              
122             =cut