/usr/share/perl5/Excel/Template/Plus.pm is in libexcel-template-plus-perl 0.05-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | package Excel::Template::Plus;
use Moose;
our $VERSION = '0.05';
our $AUTHORITY = 'cpan:STEVAN';
sub new {
shift;
my %options = @_;
my $engine_class = 'Excel::Template::Plus::' . $options{engine};
eval { Class::MOP::load_class($engine_class) };
if ($@) {
confess "Could not load engine class ($engine_class) because " . $@;
}
my $template = eval { $engine_class->new(%options) };
if ($@) {
confess "Could not create template from engine class ($engine_class) because " . $@;
}
return $template;
}
no Moose; 1;
__END__
=pod
=head1 NAME
Excel::Template::Plus - An extension to the Excel::Template module
=head1 SYNOPSIS
use Excel::Template::Plus;
my $template = Excel::Template::Plus->new(
engine => 'TT',
template => 'greeting.tmpl',
config => { INCLUDE => [ '/templates' ] },
params => { greeting => 'Hello' }
);
$template->param(location => 'World');
$template->write_file('greeting.xls');
=head1 DISCLAIMER
This is the very first release of this module, it is an idea that I and
Rob Kinyon (the author of Excel::Template) had discussed many times, but
never got around to doing. This is the first attempt at bring this to
reality, it may change B<radically> as it evolves, so be warned.
=head1 DESCRIPTION
This module is an extension of the Excel::Template module, which allows
the user to use various "engines" from which you can create Excel files
through Excel::Template.
The idea is to use the existing (and very solid) excel file generation
code in Excel::Template, but to extend its more templatey bits with more
powerful options.
The only engine currently provided is the Template Toolkit engine, which
replaces Excel::Template's built in template features (the LOOP, and IF
constructs) with the full power of TT. This is similar to the module
Excel::Template::TT, but expands on that even further to try and create
a more extensive system.
You can use this module to create Excel::Template-compatible XML files
using one of the supported engines. For example, with the TT engine you
could create a Excel::Template XML file like:
<workbook>
<worksheet name="[% worksheet_name %]">
[% my_cols = get_list_of_columns %]
<row>
[% FOR col = my_cols %]
<bold><cell>[% col %]</cell></bold>
[% END %]
</row>
[% FOR my_row = get_list_of_objects %]
<row>
[% FOR col = my_cols %]
<cell>[% my_row.$col %]</cell>
[% END %]
</row>
[% END %]
</worksheet>
</workbook>
Your TT template thus creates a XML file suitable to handing over to
Excel::Template for processing. Excel::Template::Plus simplifies
the template-creation and handing-over process.
Future engine/plans include:
=over 4
=item Pure Perl
This would allow you to write you Excel::Template files using Perl itself
which would then output the XML for Excel::Template to consume. This would
be modeled after the recently released L<Template::Declare> module perhaps.
=item TT Plugins/Macros/Wrappers
This is basically anything which will make the TT engine easier to write
templates for. I have experimented with some of these things, but I was not
happy with any of them enough to release them yet.
=item HTML::Template
Excel::Template's templating features are based on HTML::Template, but the
HTML::Template plugins and other goodies are not compatible. This engine
would bring those things to Excel::Template.
=back
=head1 METHODS
=over 4
=item B<new (%options)>
This method basically serves as a factory for creating new engine instances
(for which L<Excel::Template::Plus::TT> is the only one currently). The only
parameter that it requires is I<engine>, all other parameters are passed
onto the engine's constructor (see the individual docs for more details on
what is required).
=item B<meta>
Access to the metaclass.
=back
=head1 BUGS
All complex software has bugs lurking in it, and this module is no
exception. If you find a bug please either email me, or add the bug
to cpan-RT.
=head1 ACKNOWLEDGEMENTS
=over 4
=item This module came out of several discussions I had with Rob Kinyon.
=back
=head1 AUTHOR
Stevan Little E<lt>stevan@iinteractive.comE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright 2007-2010 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
|