++ed by:

11 PAUSE users
16 non-PAUSE users.

Author image Henry Van Styn
and 14 contributors

Controller( $catalyst, @pathArguments )

This method handles a request.

controller_dispatch( @args )

controller_dispatch performs the standard RapidApp dispatch processing for a Module.

  • If the first argument names an action, the action is executed.

  • If the first argument names a sub-module, the processing is passed to the sub-module.

  • If the first argument does not match anything, then the default action is called, if specified, otherwise a 404 is returned to the user.

  • If there are no arguments, and the client was not requesting JSON, the viewport is executed.

  • Else, content is called, and its return value is passed to render_data.

process_action( $actionName, [optional @args] )

This routine handles the execution of a selected action. The action must exist. For actions that map to coderefs, the coderef is executed. For actions that map to strings, a method of that name is called on $self.

render_data( $data )

This is a very DWIM sort of routine that takes its parameter (likely the return value of content or an action) and picks an appropriate view for it, possibly ignoring it altogether.

  • If the action generated a body, no view is needed, and the parameter is ignored.

  • If the action chose its own view, no further processing is done, and the parameter is returned.

  • If the controller is configured to render json (the default) and the parameter isn't blacklisted in no_json_ref_types, and the parameter isn't a plain string, the RapidApp::JSON view is chosen. The parameter is returned (as-is) to get passed back to TopController who passes it to the view.

  • Else, the data is treated as an explicit string for the body. The body is assigned, and returned.



  $self->set_response_callback( 'Ext.ux.MyFunc' );
  $self->set_response_callback( alert => 'foo!' );
  $self->set_response_callback( 'Ext.Msg.alert' => ( 'A message!!', 'this is awesome!!' ) );
  my $func = RapidApp::JSONFunc->new( 
    raw => 1, 
    func => 'function(){ console.log("anon!!"); console.dir(this.response); }'
    $func => ( "arg1",{ key_in_arg2 => 'blah!!!' },'arg3',\1  ) 


RapidApp::Module - Base class for RapidApp Modules


 package MyApp::Module::MyModule;
 use Moose;
 extends 'RapidApp::Module';


This is the base class for all RapidApp Modules. Documentation still TDB...



Henry Van Styn <vanstyn@cpan.org>


This software is copyright (c) 2013 by IntelliTree Solutions llc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.