Brian Cassidy > Template-Provider-FromDATA-0.13 > Template::Provider::FromDATA

Download:
Template-Provider-FromDATA-0.13.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.13   Source  

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. You can specify a list of classes to be searched for templates via the CLASSES option. 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' ]
    } );

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.

    $provider = Template::Provider::FromDATA->new( {
        PRELOAD => 1
    } );

_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.

ACCESSORS ^

classes

An arrayref of the class names containing our templates.

cache

A hashref of file and template data.

AUTHOR ^

Brian Cassidy <bricas@cpan.org>

COPYRIGHT AND LICENSE ^

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.

syntax highlighting: