package Catalyst;
use Moose;
-#use MooseX::ClassAttribute;
extends 'Catalyst::Component';
-
use bytes;
use Catalyst::Exception;
use Catalyst::Log;
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' );
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
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] );
=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
=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
$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) };
unless ($instant) {
no strict 'refs';
unshift @{"$class\::ISA"}, $plugin;
- # $class->meta->superclasses($plugin, $class->meta->superclasses);
}
return $class;
}