Revision history for Perl extension Catalyst::View::TT.
+ - The "render()" method now dies on exception, rather than returning
+ the exception object.
+
0.32 2010-02-16 05:55:00
- Various documentation improvements.
- Fix repository metadata.
return 0;
}
- my $output = $self->render($c, $template);
-
- if (UNIVERSAL::isa($output, 'Template::Exception')) {
- my $error = qq/Couldn't render template "$output"/;
+ my $output = eval { $self->render($c, $template) };
+ if (my $err = $@) {
+ my $error = qq/Couldn't render template "$template"/;
$c->log->error($error);
$c->error($error);
return 0;
[ @{ $vars->{additional_template_paths} }, @{ $self->{include_path} } ]
if ref $vars->{additional_template_paths};
- unless ($self->template->process( $template, $vars, \$output ) ) {
- return $self->template->error;
- } else {
- return $output;
- }
+ $self->template->process( $template, $vars, \$output )
+ or die $self->template->error;
+ return $output;
}
sub template_vars {
=head2 render($c, $template, \%args)
-Renders the given template and returns output, or a L<Template::Exception>
+Renders the given template and returns output. Throws a L<Template::Exception>
object upon error.
The template variables are set to C<%$args> if $args is a hashref, or
sub test_render : Local {
my ($self, $c) = @_;
- my $out = $c->stash->{message} = $c->view('TT::Appconfig')->render($c, $c->req->param('template'), {param => $c->req->param('param') || ''});
- if (UNIVERSAL::isa($out, 'Template::Exception')) {
- $c->response->body($out);
+ $c->stash->{message} = eval { $c->view('TT::Appconfig')->render($c, $c->req->param('template'), {param => $c->req->param('param') || ''}) };
+ if (my $err = $@) {
+ $c->response->body($err);
$c->response->status(403);
} else {
$c->stash->{template} = 'test.tt';