The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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. Note that this attribute is EXPERIMENTAL and might change without warning!

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('epl');

The default template handler to use for rendering in cases where auto detection doesn't work, like for inline templates.

epl

Embedded Perl Lite handled by Mojolicious::Plugin::EPLRenderer.

ep

Embedded Perl handled by Mojolicious::Plugin::EPRenderer.

default_template_class

  my $default = $renderer->default_template_class;
  $renderer   = $renderer->default_template_class('main');

Class to use for finding templates in DATA section, defaults to main.

detect_templates

  my $detect = $renderer->detect_templates;
  $renderer  = $renderer->detect_templates(1);

Template auto detection, the renderer will try to select the right template and renderer automatically.

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.

layout_prefix

  my $prefix = $renderer->layout_prefix;
  $renderer  = $renderer->layout_prefix('layouts');

Directory to look for layouts in, defaults to layouts.

paths

  my $paths = $renderer->paths;
  $renderer = $renderer->paths(['/foo/bar/templates']);

Directories to look for templates in.

  # Add another "templates" directory
  push @{$renderer->paths}, '/foo/bar/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.

add_handler

  $renderer = $renderer->add_handler(epl => sub {...});

Add a new handler to the renderer. See Mojolicious::Plugin::EPRenderer for a sample renderer.

add_helper

  $renderer = $renderer->add_helper(url_for => sub {...});

Add a new helper to the renderer. See Mojolicious::Plugin::EPRenderer for sample helpers.

get_data_template

  my $template = $renderer->get_data_template({
    template       => 'foo/bar',
    format         => 'html',
    handler        => 'epl'
    template_class => 'main'
  }, 'foo.html.ep');

Get a DATA template by name, usually used by handlers.

render

  my ($output, $type) = $renderer->render($c);
  my ($output, $type) = $renderer->render($c, $args);

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 with template, format and handler.

template_path

  my $path = $renderer->template_path({
    template => 'foo/bar',
    format   => 'html',
    handler  => 'epl'
  });

Builds a full template path based on an options hash with template, format and handler.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.