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

NAME

Catalyst::View::Mason - Mason View Class

SYNOPSIS

    # use the helper
    script/create.pl view Mason Mason

    # lib/MyApp/View/Mason.pm
    package MyApp::View::Mason;

    use base 'Catalyst::View::Mason';

    __PACKAGE__->config(use_match => 0);

    1;

    $c->forward('MyApp::View::Mason');

DESCRIPTION

Want to use a Mason component in your views? No problem! Catalyst::View::Mason comes to the rescue.

EXAMPLE

From the Catalyst controller:

    $c->stash->{name} = 'Homer'; # Pass a scalar
    $c->stash->{extra_info} = {
               last_name => 'Simpson',
               children => [qw(Bart Lisa Maggie)]
    }; # A ref works too

From the Mason template:

    <%args>
    $name
    $extra_info
    </%args>
    <p>Your name is <strong><% $name %> <% $extra_info->{last_name} %></strong>
    <p>Your children are:
    <ul>
    % foreach my $child (@{$extra_info->{children}}) {
    <li>$child
    % }
    </ul>

METHODS

new($c, \%config)

process

Renders the component specified in $c->stash->{template} or $c->request->match or $c->action (depending on the use_match setting) to $c->response->body.

Note that the component name must be absolute, or is converted to absolute (i.e., a / is added to the beginning if it doesn't start with one).

Mason global variables $base, $c, and $name are automatically set to the base, context, and name of the app, respectively.

render($c, $component_path, \%args)

Renders the given template and returns output, or a HTML::Mason::Exception object upon error.

The template variables are set to %$args if $args is a hashref, or $c->stash otherwise.

config

This allows you to to pass additional settings to the HTML::Mason::Interp constructor or to set the options as below:

template_extension

This string is appended (if present) to $c->action when generating a template path.

Example: template_extension => '.html'

use_match

Use $c->request->match instead of $c->action to determine which template to use if $c->stash->{template} isn't set. This option is deprecated and exists for backward compatibility only.

Currently defaults to 1, to avoid breaking older code, but new code should always set this to 0.

The default HTML::Mason::Interp config options are as follows:

comp_root

$c->config->root

data_dir

File::Spec->tmpdir

allow_globals

qw/$c $name $base/

If you add additional allowed globals those will be appended to the list of default globals.

SEE ALSO

Catalyst, HTML::Mason, "Using Mason from a Standalone Script" in HTML::Mason::Admin

AUTHORS

Andres Kievsky ank@cpan.org
Sebastian Riedel sri@cpan.org
Marcus Ramberg
Florian Ragwitz rafl@debian.org

COPYRIGHT

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.