this would be especially useful if you were allowed to have more than one delegate...as it would open the way for run-mode reuse across applications.

Thilo Planz wrote:

Hi all,

here is another take on one of my favourite topics, the automatic discovery of run modes.

Basically, I want to have CGI::App to look at my application instance and call a method of the
same name as the requested run-mode. Because of the security problem inherent in this approach,
some care has to be taken.


One way to mark the appropriate subroutines as run modes is to use subroutine attributes.
I implemented that in the CGI::App plugin AutoRunmode:


  package MyApp;
  use base 'CGI::Application';
  use CGI::Application::Plugin::AutoRunmode
                qw [ cgiapp_prerun];

  sub my_run_mode : Runmode {
                # do something here
  }


This works well, but now I have another idea, using a delegate object that implements all the run-modes.
I got this idea from working with Objective-C/Cocoa, which makes use of delegation (rather than inheritance)
a lot.


So, you can set up a delegate object, all of which methods are run-modes.
It is important that it has not other methods, since these methods will be directly accessible via the web (they are all considered run modes).


I have extended the AutoRunmode plugin to support this new approach as well.

Have a look if you want:

Docs:   http://perl-pad.sourceforge.net/cgiapp/AutoRunmode.html

Module: http://perl-pad.sourceforge.net/cgiapp/CGI-Application-Plugin- AutoRunmode-0.03.tar.gz

Assuming there are no grave mistakes, the module is on its way to CPAN.

Thilo

PS:

The plugin has support for the Callbacks extension, which is not on CPAN.

I think the latest version is here:
http://cees.crtconsulting.ca/perl/modules/CGI-Application-Callbacks -0.01/


Two questions:

1) What happened to the callback idea?
2) There seems to be a bug in Callbacks, as it tries to croak without loading the Carp module first.





---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
             http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
             http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to