Catalyst::View::Mason(3pm)

Catalyst::View::Mason3pm

Mason view class

Usage

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

Overview

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

Examples

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 %></li>
    % }
    </ul>

Methods

new($app, \%config)

get_component_path

Returns the component path from $c->stash->{template} or $c->request->match or $c->action (depending on the use_match setting).

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.

Defaults to an empty string.

Example: "template_extension => '.html'"

"always_append_template_extension"

Set this to a true value if you want "template_extension" to be appended to the component path even if it was explicitly set.

Defaults to 0.

Example: "always_append_template_extension => 1"

"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 0. Old code should set this to 1 to avoid breakage.

Example: "use_match => 0"

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

"comp_root"

"$app->config->root"

"data_dir"

"File::Spec->catdir( File::Spec->tmpdir, sprintf('%s_%d_mason_data_dir', $app, $<) )"

"allow_globals"

"qw/$c $name $base/"

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

Releases

9 releases since Debian 5.0 (Lenny); the text changed 7 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9–10
  6. 11
  7. 12
  8. 13

Authors

Andres Kievsky "[email protected]"
Sebastian Riedel "[email protected]"
Marcus Ramberg
Florian Ragwitz "[email protected]"
Justin Hunter "[email protected]"

From libcatalyst-view-mason-perl 0.19-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.