MojoX::Renderer.3pm

Langue: en

Version: 2010-08-15 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

MojoX::Renderer - MIME Type Based Renderer

SYNOPSIS

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

DESCRIPTION

MojoX::Renderer is the standard Mojolicious renderer. It turns your stashed data structures into content.

ATTRIBUTES

MojoX::Types implements the following attributes.

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 MojoX::Types 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. There are two handlers in this distribution.

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

The renderer will use this class to look for templates in the "DATA" section.

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. A very powerful alternative to "default_handler" that allows parallel use of multiple template systems.

encoding

     my $encoding = $renderer->encoding;
     $renderer    = $renderer->encoding('koi8-r');
 
 

Will encode the content if set, defaults to "UTF-8".

handler

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

Registered handlers.

helper

     my $helper = $renderer->helper;
     $renderer  = $renderer->helper({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".

root

    my $root  = $renderer->root;
    $renderer = $renderer->root('/foo/bar/templates');
 
 

Directory to look for templates in.

types

     my $types = $renderer->types;
     $renderer = $renderer->types(MojoX::Types->new);
 
 

MojoX::Types object to use for looking up MIME types.

METHODS

MojoX::Renderer inherits all methods from Mojo::Base and implements the following ones.

new

     my $renderer = MojoX::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_inline_template

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

Get an inline 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 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://mojolicious.org>.