Marcus Ramberg > Mojolicious-4.60 > Mojolicious::Renderer

Download:
Mojolicious-4.60.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Source   Latest Release: Mojolicious-5.44

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

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.

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 generated content if set, defaults to UTF-8. Note that many renderers such as Mojolicious::Plugin::EPRenderer also use this value to determine if template files should be decoded before processing.

handlers

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

Registered handlers, by default only data, text and json are already defined.

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.

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.

syntax highlighting: