Fix Chained Dispatch broken by chain registration.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Action.pm
index 2023303..c3abb5b 100644 (file)
@@ -28,14 +28,10 @@ has code => (is => 'rw');
 
 no Moose;
 
-no warnings 'recursion';
-
-#__PACKAGE__->mk_accessors(qw/class namespace reverse attributes name code/);
-
 use overload (
 
     # Stringify to reverse for debug output etc.
-    q{""} => sub { shift->reverse() },
+    q{""} => sub { shift->{reverse} },
 
     # Codulate to execute to invoke the encapsulated action coderef
     '&{}' => sub { my $self = shift; sub { $self->execute(@_); }; },
@@ -45,19 +41,25 @@ use overload (
 
 );
 
+
+
+no warnings 'recursion';
+
+#__PACKAGE__->mk_accessors(qw/class namespace reverse attributes name code/);
+
 sub dispatch {    # Execute ourselves against a context
     my ( $self, $c ) = @_;
     #Moose todo: grrrrrr. this is no good. i don't know enough about it to
     # debug it though. why can't we just call the accessor?
-    local $c->{namespace} = $self->namespace;
-    return $c->execute( $self->class, $self );
+    #local $c->{namespace} = $self->namespace;
+    #return $c->execute( $self->class, $self );
 
     #believed to be equivalent:
-    #my $orig = $c->namespace;
-    #$c->namespace($self->namespace);
-    #my $ret = $c->execute( $self->class, $self );
-    #$c->namespace($orig);
-    #return $ret;
+    my $orig = $c->namespace;
+    $c->namespace($self->namespace);
+    my $ret = $c->execute( $self->class, $self );
+    $c->namespace($orig);
+    return $ret;
 }
 
 sub execute {
@@ -127,9 +129,9 @@ returns the sub name of this action.
 
 Provided by Moose
 
-=head1 AUTHOR
+=head1 AUTHORS
 
-Matt S. Trout
+Catalyst Contributors, see Catalyst.pm
 
 =head1 COPYRIGHT