Template::Provider::FromDATA.3pm

Langue: en

Autres versions - même langue

Version: 2009-11-24 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Template::Provider::FromDATA - Load templates from your __DATA__ section

SYNOPSIS

     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 %]?
 
 

DESCRIPTION

This module allows you to store your templates inline with your code in the "__DATA__" section. It will search any number of classes specified.

CAVEAT

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' } );
 
 

INSTALLATION

     perl Makefile.PL
     make
     make test
     make install
 
 

METHODS

new( \%OPTIONS )

Create a new instance of the provider. The only option you can specify is "CLASSES" which will tell the provider what classes to search for templates. By omitting this option it will search "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' ]
     } );
 
 

_init( \%OPTIONS )

A subclassed method to handle the options passed to "new()".

fetch( $name )

This is a subclassed method that will load a template via "_fetch()" if a non-reference argument is passed.

_load( $name )

Loads the template via the "get_file()" sub and sets some cache information.

get_file( $class, $template )

This method searches through $class for a template named $template. Returns the contents on success, undef on failure.

This function was mostly borrowed from Catalyst::Helper's "get_file" function.

AUTHOR

Brian Cassidy <bricas@cpan.org> Copyright 2005-2009 by Brian Cassidy

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.