NAME¶
Mojolicious::Renderer - Generate dynamic content
SYNOPSIS¶
use Mojolicious::Renderer;
my $renderer = Mojolicious::Renderer->new;
push @{$renderer->classes}, 'MyApp::Foo';
push @{renderer->paths}, '/home/sri/templates';
DESCRIPTION¶
Mojolicious::Renderer is the standard Mojolicious renderer.
See Mojolicious::Guides::Rendering for more.
ATTRIBUTES¶
Mojolicious::Renderer implements the following attributes.
cache¶
my $cache = $renderer->cache;
$renderer = $renderer->cache(Mojo::Cache->new);
Renderer cache, defaults to a Mojo::Cache object.
classes¶
my $classes = $renderer->classes;
$renderer = $renderer->classes(['main']);
Classes to use for finding templates in "DATA" sections, first one has
the highest precedence, defaults to "main".
# Add another class with templates in DATA section
push @{$renderer->classes}, 'Mojolicious::Plugin::Fun';
my $default = $renderer->default_format;
$renderer = $renderer->default_format('html');
The default format to render if "format" is not set in the stash.
default_handler¶
my $default = $renderer->default_handler;
$renderer = $renderer->default_handler('ep');
The default template handler to use for rendering in cases where auto detection
doesn't work, like for "inline" templates.
encoding¶
my $encoding = $renderer->encoding;
$renderer = $renderer->encoding('koi8-r');
Will encode the content if set, defaults to "UTF-8".
handlers¶
my $handlers = $renderer->handlers;
$renderer = $renderer->handlers({epl => sub {...}});
Registered handlers.
helpers¶
my $helpers = $renderer->helpers;
$renderer = $renderer->helpers({url_for => sub {...}});
Registered helpers.
paths¶
my $paths = $renderer->paths;
$renderer = $renderer->paths(['/home/sri/templates']);
Directories to look for templates in, first one has the highest precedence.
# Add another "templates" directory
push @{$renderer->paths}, '/home/sri/templates';
METHODS¶
Mojolicious::Renderer inherits all methods from Mojo::Base and implements the
following new ones.
new¶
my $renderer = Mojolicious::Renderer->new;
Construct a new renderer and register "data", "json" as well
as "text" handlers.
add_handler¶
$renderer = $renderer->add_handler(epl => sub {...});
Register a new handler.
add_helper¶
$renderer = $renderer->add_helper(url_for => sub {...});
Register a new helper.
get_data_template¶
my $template = $renderer->get_data_template({
template => 'foo/bar',
format => 'html',
handler => 'epl'
});
Get a "DATA" section template by name, usually used by handlers.
render¶
my ($output, $format) = $renderer->render(Mojolicious::Controller->new);
my ($output, $format) = $renderer->render(Mojolicious::Controller->new, {
template => 'foo/bar',
foo => 'bar'
});
Render output through one of the renderers. See "render" in
Mojolicious::Controller for a more user-friendly interface.
template_name¶
my $template = $renderer->template_name({
template => 'foo/bar',
format => 'html',
handler => 'epl'
});
Builds a template name based on an options hash reference with
"template", "format" and "handler", usually used
by handlers.
template_path¶
my $path = $renderer->template_path({
template => 'foo/bar',
format => 'html',
handler => 'epl'
});
Builds a full template path based on an options hash reference with
"template", "format" and "handler", usually used
by handlers.
SEE ALSO¶
Mojolicious, Mojolicious::Guides, <
http://mojolicio.us>.