Alan Ferrency > Text-MicroMason > Text::MicroMason::TemplateDir

Download:
Text-MicroMason-2.13.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  1
View/Report Bugs
Source  

NAME ^

Text::MicroMason::TemplateDir - Use Base Directory and Relative Paths

SYNOPSIS ^

Instead of using this class directly, pass its name to be mixed in:

    use Text::MicroMason;
    my $mason = Text::MicroMason->new( -TemplateDir, template_root=>'/foo' );

Use the standard compile and execute methods to parse and evalute templates:

  print $mason->compile( file=>$filepath )->( 'name'=>'Dave' );
  print $mason->execute( file=>$filepath, 'name'=>'Dave' );

Templates stored in files are looked up relative to the template root:

    print $mason->execute( file=>"includes/greeting.msn", 'name'=>'Charles');

When including other files into a template you can use relative paths:

    <& ../includes/greeting.msn, name => 'Alice' &>

DESCRIPTION ^

This module changes the resolution of files passed to compile() and execute() to be relative to a base directory path or to the currently executing template.

Supported Attributes

template_root

Base directory from which to find templates.

strict_root

Optional directory beyond which not to read files. If set to 1, uses template_root, Causes read_file to croak if any filename outside of the root is provided. (Note that this is not a chroot jail and only affects attempts to load a file as a template; for greater security see the chroot() builtin and Text::MicroMason::Safe.)

Private Methods

prepare

Intercepts uses of file templates and applies the base-path adjustment.

read_file

Intercepts file access to check for strict_root.

EXCEPTIONS

The following additional exceptions are generated by Text::MicroMason::TemplateDir when appropriate:

SEE ALSO ^

For an overview of this templating framework, see Text::MicroMason.

This is a mixin class intended for use with Text::MicroMason::Base.

For distribution, installation, support, copyright and license information, see Text::MicroMason::Docs::ReadMe.

syntax highlighting: