Dancer2::Core::Role::Template(3) Role for template engines

VERSION

version 0.200002

DESCRIPTION

Any class that consumes this role will be able to be used as a template engine under Dancer2.

In order to implement this role, the consumer must implement the method "render". This method will receive three arguments:

$self
$template
$tokens

Any template receives the following tokens, by default:

  • "perl_version"

    Current version of perl, effectively $^V.

  • "dancer_version"

    Current version of Dancer2, effectively "<Dancer2-"VERSION>>.

  • "settings"

    A hash of the application configuration.

  • "request"

    The current request object.

  • "params"

    A hash reference of all the parameters.

    Currently the equivalent of "$request->params".

  • "vars"

    The list of request variables, which is what you would get if you called the "vars" keyword.

  • "session"

    The current session data, if a session exists.

ATTRIBUTES

name

The name of the template engine (e.g.: Simple).

charset

The charset. The default value is UTF-8.

default_tmpl_ext

The default file extension. If not provided, tt is used.

views

Path to the directory containing the views.

layout

Path to the directory containing the layouts.

layout_dir

Relative path to the layout directory.

Default: layouts.

engine

Contains the engine.

METHODS

view_pathname($view)

Returns the full path to the requested view.

layout_pathname($layout)

Returns the full path to the requested layout.

pathname_exists($pathname)

Returns true if the requested pathname exists. Can be used for either views or layouts:

    $self->pathname_exists( $self->view_pathname( 'some_view' ) );
    $self->pathname_exists( $self->layout_pathname( 'some_layout' ) );

render_layout($layout, \%tokens, \$content)

Render the layout with the applied tokens

apply_renderer($view, \%tokens)

apply_layout($content, \%tokens, \%options)

process($view, \%tokens, \%options)

METHODS

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Alexis Sukrieh.

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