Scroll to navigation

Mojolicious::Renderer(3pm) User Contributed Perl Documentation Mojolicious::Renderer(3pm)

NAME

Mojolicious::Renderer - MIME type based renderer

SYNOPSIS

  use Mojolicious::Renderer;
  my $renderer = Mojolicious::Renderer->new;

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';

"default_format"

  my $default = $renderer->default_format;
  $renderer   = $renderer->default_format('html');
The default format to render if "format" is not set in the stash. The renderer will use "types" in Mojolicious to look up the content MIME type.

"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 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'
  }, 'foo.html.ep');
Get a DATA template by name, usually used by handlers.

"render"

  my ($output, $type) = $renderer->render(Mojolicious::Controller->new);
  my ($output, $type) = $renderer->render(Mojolicious::Controller->new, {
    template => 'foo/bar',
    foo      => 'bar'
  });
Render output through one of the Mojo renderers. This renderer requires some configuration, at the very least you will need to have a default "format" and a default "handler" as well as a "template" or "text"/"json". 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>.
2012-09-05 perl v5.14.2