Overload to stringify correctly
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 381a250..ad8086c 100644 (file)
@@ -1,9 +1,7 @@
 package Catalyst;
 
 use Moose;
-#use MooseX::ClassAttribute;
 extends 'Catalyst::Component';
-
 use bytes;
 use Catalyst::Exception;
 use Catalyst::Log;
@@ -32,15 +30,9 @@ use Carp qw/croak carp/;
 
 BEGIN { require 5.008001; }
 
-has counter   => ( is => 'rw');
-has request   => ( is => 'rw');
-has response  => ( is => 'rw');
-has state     => ( is => 'rw');
-has action    => ( is => 'rw');
-has stack     => ( is => 'rw');
-has namespace => ( is => 'rw');
-has stats     => ( is => 'rw');
-
+__PACKAGE__->mk_accessors(
+    qw/counter request response state action stack namespace stats stash/
+);
 
 attributes->import( __PACKAGE__, \&namespace, 'lvalue' );
 
@@ -60,19 +52,6 @@ our $START     = time;
 our $RECURSION = 1000;
 our $DETACH    = "catalyst_detach\n";
 
-# class_has components       => (is => 'rw');
-# class_has arguments        => (is => 'rw');
-# class_has dispatcher       => (is => 'rw');
-# class_has engine           => (is => 'rw');
-# class_has log              => (is => 'rw');
-# class_has dispatcher_class => (is => 'rw', required => 1, default => sub {'Catalyst::Dispatcher'});
-# class_has engine_class     => (is => 'rw', required => 1, default => sub {'Catalyst::Engine::CGI'});
-# class_has context_class    => (is => 'rw');
-# class_has request_class    => (is => 'rw', required => 1, default => sub {'Catalyst::Request'});
-# class_has response_class   => (is => 'rw', required => 1, default => sub {'Catalyst::Response'});
-# class_has stats_class      => (is => 'rw', required => 1, default => sub {'Catalyst::Stats'});
-# class_has setup_finished   => (is => 'rw');
-
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log dispatcher_class
   engine_class context_class request_class response_class stats_class
@@ -100,9 +79,6 @@ sub import {
     unless ( $caller->isa('Catalyst') ) {
         no strict 'refs';
         push @{"$caller\::ISA"}, $class, 'Catalyst::Controller';
-        #my $caller_meta = $caller->meta;
-        #my @isa = $caller_meta->superclasses;
-        #$caller_meta->superclasses(@isa, $class, 'Catalyst::Controller');
     }
 
     $caller->arguments( [@arguments] );
@@ -378,17 +354,18 @@ Catalyst).
 
 =cut
 
-sub stash {
+around stash => sub {
+    my $orig = shift;
     my $c = shift;
     if (@_) {
         my $stash = @_ > 1 ? {@_} : $_[0];
         croak('stash takes a hash or hashref') unless ref $stash;
         foreach my $key ( keys %$stash ) {
-            $c->{stash}->{$key} = $stash->{$key};
+            $c->$orig()->{$key} = $stash->{$key};
         }
     }
-    return $c->{stash};
-}
+    return $c->$orig();
+};
 
 =head2 $c->error
 
@@ -700,15 +677,14 @@ L<Catalyst::Plugin::ConfigLoader>.
 
 =cut
 
-around config => sub {
-    my $orig = shift;
+sub config {
     my $c = shift;
 
     $c->log->warn("Setting config after setup has been run is not a good idea.")
       if ( @_ and $c->setup_finished );
 
-    $c->$orig(@_);
-};
+    $c->NEXT::config(@_);
+}
 
 =head2 $c->log
 
@@ -786,7 +762,6 @@ sub plugin {
     $class->_register_plugin( $plugin, 1 );
 
     eval { $plugin->import };
-    #MooseX::ClassAttribute::process_class_attribute($class, $name => (is => 'rw'));
     $class->mk_classdata($name);
     my $obj;
     eval { $obj = $plugin->new(@args) };
@@ -2206,7 +2181,6 @@ the plugin name does not begin with C<Catalyst::Plugin::>.
         unless ($instant) {
             no strict 'refs';
             unshift @{"$class\::ISA"}, $plugin;
-            # $class->meta->superclasses($plugin, $class->meta->superclasses);
         }
         return $class;
     }