Terrence Brannon wrote:
sub logout {
my($app)=...@_;
$app->authen->logout;
$app->forward( $app->start_mode ); # would be nice!
}
instead I will declare a lexical variable for the Application package
($start_mode) and use it in both defining the start mode and forwarding to
it.
The implementation of start_mode() suggests that this already works, and the
following test script shows it does. I haven't checked what forward() would do
if start_mode is a code ref.
Rhesa
use strict;
use warnings;
use Test::More tests => 2;
use CGI::Application;
$ENV{CGI_APP_RETURN_ONLY} = 1;
{
package My::App;
use base qw/CGI::Application/;
sub setup {
my $self = shift;
$self->header_type('none');
$self->start_mode('mode1');
$self->run_modes([qw/ mode1 mode2 /]);
}
sub mode1 { 'mode1' }
sub mode2 {
my $self = shift;
return 'start mode is ' . $self->start_mode;
}
}
my $app = My::App->new;
is $app->run, 'mode1';
$app->mode_param( sub { 'mode2' } );
is $app->run, 'start mode is mode1';
__END__
1..2
ok 1
ok 2
##### CGI::Application community mailing list ################
## ##
## To unsubscribe, or change your message delivery options, ##
## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ##
## ##
## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ##
## Wiki: http://cgiapp.erlbaum.net/ ##
## ##
################################################################