Catalyst::Action::RenderView.3pm

Langue: en

Version: 2008-05-02 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Catalyst::Action::RenderView - Sensible default end action.

SYNOPSIS

     sub end : ActionClass('RenderView') {}
 
 

DESCRIPTION

This action implements a sensible default end action, which will forward to the first available view, unless status is set to 3xx, or there is a response body. It also allows you to pass "dump_info=1" to the url in order to force a debug screen, while in debug mode.

If you have more than one view, you can specify which one to use with the "default_view" config setting (see Catalyst's "$c->view($name)" method).

METHODS

end

The default "end" action. You can override this as required in your application class; normal inheritance applies.

INTERNAL METHODS

execute

Dispatches control to superclasses, then forwards to the default View.

See ``METHODS/action'' in Catalyst::Action.

SCRUBBING OUTPUT

When you force debug with dump_info=1, RenderView is capable of removing classes from the objects in your stash. By default it will replace any DBIx::Class resultsource objects with the class name, which cleans up the debug output considerably, but you can change what gets scrubbed by setting a list of classes in $c->config->{debug}->{ignore_classes}. For instance:
     $c->config->{debug}->{ignore_classes}=[];
 
 

To disable the functionality. You can also set config->{debug}->{scrubber_func} to change what it does with the classes. For instance, this will undef it instead of putting in the class name:

     $c->config->{debug}->{scrubber_func}=sub { undef $_ };
 
 

EXTENDING

To add something to an "end" action that is called before rendering, simply place it in the "end" method:
     sub end : ActionClass('RenderView') {
       my ( $self, $c ) = @_;
       # do stuff here; the RenderView action is called afterwards
     }
 
 

To add things to an "end" action that are called after rendering, you can set it up like this:

     sub render : ActionClass('RenderView') { }
 
     sub end : Private { 
       my ( $self, $c ) = @_;
       $c->forward('render');
       # do stuff here
     }
 
 

AUTHOR

Marcus Ramberg <marcus@thefeed.no>

LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.