-
-
29 Mar 2009 19:38:51 UTC
- Distribution: Catalyst-View-Mason
- Module version: 0.17
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (3)
- Testers (229 / 4 / 0)
- Kwalitee
Bus factor: 11- License: perl_5
- Activity
24 month- Tools
- Download (24.46KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Catalyst
- File::Spec
- HTML::Mason
- MRO::Compat
- Scalar::Util
- parent
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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 %></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.
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
- Justin Hunter
justin.d.hunter@gmail.com
COPYRIGHT
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install Catalyst::View::Mason, copy and paste the appropriate command in to your terminal.
cpanm Catalyst::View::Mason
perl -MCPAN -e shell install Catalyst::View::Mason
For more information on module installation, please visit the detailed CPAN module installation guide.