[Catalyst-commits] r6432 - trunk/Catalyst-Engine-Wx/lib/Catalyst/View

eriam at dev.catalyst.perl.org eriam at dev.catalyst.perl.org
Sun May 27 12:55:28 GMT 2007


Author: eriam
Date: 2007-05-27 12:55:28 +0100 (Sun, 27 May 2007)
New Revision: 6432

Modified:
   trunk/Catalyst-Engine-Wx/lib/Catalyst/View/Wx.pm
Log:
Added a flag to make sure each view is displayed only once.

Modified: trunk/Catalyst-Engine-Wx/lib/Catalyst/View/Wx.pm
===================================================================
--- trunk/Catalyst-Engine-Wx/lib/Catalyst/View/Wx.pm	2007-05-24 21:44:17 UTC (rev 6431)
+++ trunk/Catalyst-Engine-Wx/lib/Catalyst/View/Wx.pm	2007-05-27 11:55:28 UTC (rev 6432)
@@ -2,6 +2,7 @@
 
 use warnings;
 use strict;
+no strict 'refs';
 
 use base qw/Catalyst::View/;
 
@@ -35,23 +36,28 @@
 sub process {
    my ($self, $c) = @_;
    
-   my $module = $c->stash->{class} || $c->action;
-   $module =~ s/\//::/g;
+   $c->stash->{'_displayed'} ||= 0;
    
-   if (defined $self->config->{NAMESPACE}) {
-      $module = $self->config->{NAMESPACE}.'::'.$module;
-   }
+   if ($c->stash->{'_displayed'} != 1) {
+      
+      my $module = $c->stash->{class} || $c->action;
+      $module =~ s/\//::/g;
+      
+      if (defined $self->config->{NAMESPACE}) {
+         $module = $self->config->{NAMESPACE}.'::'.$module;
+      }
+      
+      unless (Class::Inspector->loaded($module)) {
+         require Class::Inspector->filename($module);
+      }
+      
+      if (my $code = $module->can('new')) {
+         $code->($module, @_);
+      }
    
-   unless (Class::Inspector->loaded($module)) {
-      require Class::Inspector->filename($module);
+      $c->stash->{'_displayed'} = 1;
    }
-   
-   if (my $code = $module->can('new') ) {
-      $code->($module, @_);
-   }
-
-#   $c->stash->{_displayed} = 1;
-   return 1; 
+   return; 
 }
 
 sub DESTROY {




More information about the Catalyst-commits mailing list