Handle $c->error called as a class method.
Marcus Ramberg [Tue, 18 Apr 2006 13:44:46 +0000 (13:44 +0000)]
Changes
Makefile.PL
lib/Catalyst.pm

diff --git a/Changes b/Changes
index 8cd5c71..98c839e 100644 (file)
--- a/Changes
+++ b/Changes
@@ -15,6 +15,7 @@ This file documents the revision history for Perl extension Catalyst.
         - Applied patch from GEOFFR to allow normal filehandles.
         - Refactored Dispatcher internals for better readability and speedup
           (stress tests run 12% faster)
+        - Allow $c->error to run as a class method
 
 5.66    2006-03-10 17:48:00
         - Added Test::WWW::Mechanize::Catalyst support
index 4e366dd..3500fab 100644 (file)
@@ -7,6 +7,7 @@ all_from 'lib/Catalyst.pm';
 
 requires 'perl'               => '5.8.1';
 requires 'UNIVERSAL::require' => "0.10";
+requires 'Carp';
 requires 'Class::Accessor::Fast';
 requires 'Class::Data::Inheritable';
 requires 'Class::Inspector';
index 34fd2d0..d756514 100644 (file)
@@ -22,6 +22,7 @@ use Scalar::Util qw/weaken blessed/;
 use Tree::Simple qw/use_weak_refs/;
 use Tree::Simple::Visitor::FindByUID;
 use attributes;
+use Carp qw/croak/;
 
 __PACKAGE__->mk_accessors(
     qw/counter request response state action stack namespace/
@@ -298,6 +299,7 @@ sub error {
     my $c = shift;
     if ( $_[0] ) {
         my $error = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];
+        croak @$error unless ref $c;
         push @{ $c->{error} }, @$error;
     }
     elsif ( defined $_[0] ) { $c->{error} = undef }