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>
Your name is <% $name %> <% $extra_info->{last_name} %>
Your children are:
% foreach my $child (@{$extra_info->{children}}) {
- $child
% }
METHODS
new
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 c<$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:
"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.
The default HTML::Mason::Interp config options are as follows:
"comp_root"
"$c->config->root"
"data_dir"
"File::Spec->tmpdir"
SEE ALSO
Catalyst, HTML::Mason, "Using Mason from a Standalone Script" in
HTML::Mason::Admin
AUTHOR
Andres Kievsky "ank@cpan.org" Sebastian Riedel "sri@cpan.org" Marcus
Ramberg Florian Ragwitz
COPYRIGHT
This program is free software, you can redistribute it and/or modify it
under the same terms as Perl itself.