/[webpac2]/trunk/lib/WebPAC/Output/TT.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Output/TT.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/lib/WebPAC/Output/html.pm revision 14 by dpavlin, Sat Jun 25 20:23:23 2005 UTC trunk/lib/WebPAC/Output/TT.pm revision 16 by dpavlin, Sun Jul 17 11:37:07 2005 UTC
# Line 1  Line 1 
1  package WebPAC::Output::html;  package WebPAC::Output::TT;
2    
3  use warnings;  use warnings;
4  use strict;  use strict;
5    
6    use base qw/WebPAC::Common/;
7    
8    use Template;
9    use Data::Dumper;
10    
11  =head1 NAME  =head1 NAME
12    
13  WebPAC::Output::html - The great new WebPAC::Output::html!  WebPAC::Output::TT - use Template Toolkit to produce output
14    
15  =head1 VERSION  =head1 VERSION
16    
# Line 17  our $VERSION = '0.01'; Line 22  our $VERSION = '0.01';
22    
23  =head1 SYNOPSIS  =head1 SYNOPSIS
24    
25  Quick summary of what the module does.  Produce output using Template Toolkit.
26    
27  Perhaps a little code snippet.  =head1 FUNCTIONS
28    
29      use WebPAC::Output::html;  =head2 new
30    
31      my $foo = WebPAC::Output::html->new();  Create new instance.
     ...  
32    
33  =head1 EXPORT   my $tt = new WebPAC::Output::TT(
34            include_path => '/path/to/conf/output/tt',
35            filters => {
36                    filter_1 => sub { uc(shift) },
37            },
38     );
39    
40  A list of functions that can be exported.  You can delete this section  By default, Template Toolkit will C<EVAL_PERL> if included in templates.
 if you don't export anything, such as for a purely object-oriented module.  
41    
42  =head1 FUNCTIONS  =cut
43    
44  =head2 function1  sub new {
45            my $class = shift;
46            my $self = {@_};
47            bless($self, $class);
48    
49            my $log = $self->_get_logger;
50    
51            # create Template toolkit instance
52            $self->{'tt'} = Template->new(
53                    INCLUDE_PATH => $self->{'include_path'},
54                    FILTERS => $self->{'filter'},
55                    EVAL_PERL => 1,
56            );
57            
58            $log->logdie("can't create TT object: $Template::ERROR") unless ($self->{'tt'});
59    
60  =cut          $log->debug("filters defined: ",Dumper($self->{'filter'}));
61    
62  sub function1 {          $self ? return $self : return undef;
63  }  }
64    
65  =head2 function2  
66    =head2 apply
67    
68    Create output from in-memory data structure using Template Toolkit template.
69    
70    my $text = $tt->apply( template => 'text.tt', data => @ds );
71    
72  =cut  =cut
73    
74  sub function2 {  sub apply {
75            my $self = shift;
76    
77            my $args = {@_};
78    
79            my $log = $self->_get_logger();
80    
81            foreach my $a (qw/template data/) {
82                    $log->logconfess("need $a") unless ($args->{$a});
83            }
84    
85            my $out;
86    
87            $self->{'tt'}->process(
88                    $args->{'template'},
89                    $args,
90                    \$out
91            ) || $log->logconfess( "apply can't process template: ", $self->{'tt'}->error() );
92    
93            return $out;
94  }  }
95    
96  =head1 AUTHOR  =head2 to_file
97    
98  Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>  Create output from in-memory data structure using Template Toolkit template
99    to a file.
100    
101     $tt->to_file(
102            file => 'out.txt',
103            template => 'text.tt',
104            data => @ds
105     );
106    
107    =cut
108    
109    sub to_file {
110            my $self = shift;
111    
112            my $args = {@_};
113    
114            my $log = $self->_get_logger();
115    
116  =head1 BUGS          my $file = $args->{'file'} || $log->logconfess("need file name");
117    
118  Please report any bugs or feature requests to          $log->debug("creating file ",$file);
 C<bug-webpac-output-html@rt.cpan.org>, or through the web interface at  
 L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WebPAC>.  
 I will be notified, and then you'll automatically be notified of progress on  
 your bug as I make changes.  
119    
120  =head1 ACKNOWLEDGEMENTS          open(my $fh, ">", $file) || $log->logdie("can't open output file '$file': $!");
121            print $fh $self->output(
122                    template => $args->{'template'},
123                    data => $args->{'data'},
124            ) || $log->logdie("print: $!");
125            close($fh) || $log->logdie("close: $!");
126    
127            return 1;
128    }
129    
130    
131    =head1 AUTHOR
132    
133    Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
134    
135  =head1 COPYRIGHT & LICENSE  =head1 COPYRIGHT & LICENSE
136    
# Line 70  under the same terms as Perl itself. Line 141  under the same terms as Perl itself.
141    
142  =cut  =cut
143    
144  1; # End of WebPAC::Output::html  1; # End of WebPAC::Output::TT

Legend:
Removed from v.14  
changed lines
  Added in v.16

  ViewVC Help
Powered by ViewVC 1.1.26