Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

template::provider::encoding(3pm) [debian man page]

Template::Provider::Encoding(3pm)			User Contributed Perl Documentation			 Template::Provider::Encoding(3pm)

NAME
Template::Provider::Encoding - Explicitly declare encodings of your templates SYNOPSIS
use Template::Provider::Encoding; use Template::Stash::ForceUTF8; use Template; my $tt = Template->new( LOAD_TEMPLATES => [ Template::Provider::Encoding->new ], STASH => Template::Stash::ForceUTF8->new, ); # Everything should be Unicode # (but you can pass UTF-8 bytes as well, thanks to Template::Stash::ForceUTF8) my $author = "x{5bae}x{5ddd}"; # this will emit Unicode flagged string to STDOUT. You might # probably want to binmode(STDOUT, ":encoding($enccoding)") # before process() call $tt->process($template, { author => $author }); # in your templates [% USE encoding 'utf-8' -%] My name is [% author %]. { ... whatever UTF-8 bytes } DESCRIPTION
Template::Provider::Encoding is a Template Provider subclass to decode template using its declaration. You have to declare encoding of the template in the head (1st line) of template using (fake) encoding TT plugin. Otherwise the template is handled as utf-8. [% USE encoding 'utf-8' %] Here comes utf-8 strings with [% variable %]. DIFFERNCE WITH OTHER WAYS
UNICODE option and BOM Recent TT allows "UNICODE" option to Template::Provider and by adding it Provider scans BOM (byte-order mark) to detect UTF-8/UTF-16 encoded template files. This module does basically the same thing in a different way, but IMHO adding BOM to template files is a little painful especially for non-programmers. Template::Provider::Encode Template::Provider::Encode provides a very similar way to detect Template file encodings and output the template into various encodings. This module doesn't touch output encoding of the template and instead it emits valid Unicode flagged string. I think the output encoding conversion should be done by other piece of code, especially in the framework. This module doesn't require you to specify encoding in the code, nor doesn't guess encodings. Instead it forces you to put "[% USE encoding 'foo-bar' %]" in the top of template files, which is explicit and, I think, is a good convention. AUTHOR
Tatsuhiko Miyagawa <miyagawa@bulknews.net> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Template::Stash::ForceUTF8, Template::Provider::Encode perl v5.12.3 2007-08-01 Template::Provider::Encoding(3pm)

Check Out this Related Man Page

Template::Provider::FromDATA(3pm)			User Contributed Perl Documentation			 Template::Provider::FromDATA(3pm)

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-2011 by Brian Cassidy This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2011-12-07 Template::Provider::FromDATA(3pm)
Man Page