Provided by: libtext-micromason-perl_2.23-5_all bug

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 evaluate 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:

       •   Text::MicroMason::TemplateDir: Strict root '%s' doesn't seem to exist

           The strict_root directory (or template_root if strict_root is '1') doesn't seem to
           exist. Strict root checking uses Cwd's abs_path(), and requires the strict_root
           directory to exist at the time the check is performed.

       •   Text::MicroMason::TemplatePath: Template '%s' not in required base path '%s'

           The template found in the configured template path was not within the configured
           strict_root directory. This may be caused by requesting an absolute template filename
           not within strict_root, or by specifying a strict_root which does not match the
           configured template path.

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.