Template::Provider::FromDATA - Load templates from your __DATA__ section
use Template; use Template::Provider::FromDATA; # Create the provider my $provider = Template::Provider::FromDATA->new( { CLASSES => __PACKAGE__ } ); # Add the provider to the config my $template = Template->new( { # ... LOAD_TEMPLATES => [ $provider ] } ); # Render a template $template->process( 'mytemplate', { bar => 'Bar' } ); # ...and now the templates __DATA__ __mytemplate__ Foo [% bar %] __myothertemplate__ Baz, [% qux %]?
This module allows you to store your templates inline with your code in the __DATA__ section. It will search any number of classes specified.
__DATA__
If you have two templates with the same name, this module will not understand the difference, it will simply return the first one found. If you wish, you can specify a fully qualified template name by prefixing the template with the module name (using - instead of :: as a namespace separator), adding a / to separate the module name from the template name.
-
::
/
$template->process( 'My-Templates/mytemplate', { bar => 'Bar' } );
perl Makefile.PL make make test make install
Create a new instance of the provider. You can specify a list of classes to be searched for templates via the CLASSES option. By omitting this option it will search main.
CLASSES
main
# defaults to 'main' $provider = Template::Provider::FromDATA->new; # look for templates in 'Foo' $provider = Template::Provider::FromDATA->new( { CLASSES => 'Foo' } ); # look for templates in 'Foo::Bar' and 'Foo::Baz' $provider = Template::Provider::FromDATA->new( { CLASSES => [ 'Foo::Bar', 'Foo::Baz' ] } );
By default, template data is lazy-loaded as they it is requested. If you wish to load up all template data upon initializtion, you can use the PRELOAD option.
PRELOAD
$provider = Template::Provider::FromDATA->new( { PRELOAD => 1 } );
A subclassed method to handle the options passed to new().
new()
This is a subclassed method that will load a template via _fetch() if a non-reference argument is passed.
_fetch()
Loads the template via the get_file() sub and sets some cache information.
get_file()
This method searches through $class for a template named $template. Returns the contents on success, undef on failure.
$class
$template
This function was mostly borrowed from Catalyst::Helper's get_file function.
get_file
An arrayref of the class names containing our templates.
A hashref of file and template data.
Brian Cassidy <bricas@cpan.org>
Copyright 2005-2012 by Brian Cassidy
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Template::Provider::FromDATA, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Template::Provider::FromDATA
CPAN shell
perl -MCPAN -e shell install Template::Provider::FromDATA
For more information on module installation, please visit the detailed CPAN module installation guide.