[Catalyst-commits] r7530 - in Catalyst-Runtime/5.80/branches/moose:
. lib
groditi at dev.catalyst.perl.org
groditi at dev.catalyst.perl.org
Wed Mar 26 23:42:36 GMT 2008
Author: groditi
Date: 2008-03-26 23:42:35 +0000 (Wed, 26 Mar 2008)
New Revision: 7530
Modified:
Catalyst-Runtime/5.80/branches/moose/TODO
Catalyst-Runtime/5.80/branches/moose/lib/Catalyst.pm
Log:
little things in Catalyst.pm
Modified: Catalyst-Runtime/5.80/branches/moose/TODO
===================================================================
--- Catalyst-Runtime/5.80/branches/moose/TODO 2008-03-26 22:49:54 UTC (rev 7529)
+++ Catalyst-Runtime/5.80/branches/moose/TODO 2008-03-26 23:42:35 UTC (rev 7530)
@@ -12,6 +12,9 @@
- GRODITI's list:
+ * Update Test suite to not assume MyApp ISA Controller
+ - After that I'll set up attr handlers that will output helpful
+ error messages when you do it as well as how to fix it.
* comments marked /Moose TODO/i in the code
* Fix the CDI compat hack so we can start moving to immutable
* Profile before and after immutable.
Modified: Catalyst-Runtime/5.80/branches/moose/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/moose/lib/Catalyst.pm 2008-03-26 22:49:54 UTC (rev 7529)
+++ Catalyst-Runtime/5.80/branches/moose/lib/Catalyst.pm 2008-03-26 23:42:35 UTC (rev 7530)
@@ -30,14 +30,14 @@
BEGIN { require 5.008001; }
-has stack => (is => 'rw');
-has stash => (is => 'rw');
-has state => (is => 'rw');
-has stats => (is => 'rw');
-has action => (is => 'rw');
-has counter => (is => 'rw');
-has request => (is => 'rw');
-has response => (is => 'rw');
+has stack => (is => 'rw');
+has stash => (is => 'rw');
+has state => (is => 'rw');
+has stats => (is => 'rw');
+has action => (is => 'rw');
+has counter => (is => 'rw');
+has request => (is => 'rw');
+has response => (is => 'rw');
has namespace => (is => 'rw');
@@ -59,6 +59,8 @@
our $RECURSION = 1000;
our $DETACH = "catalyst_detach\n";
+#I imagine that very few of these really need to be class variables. if any.
+#maybe we should just make them attributes with a default?
__PACKAGE__->mk_classdata($_)
for qw/components arguments dispatcher engine log dispatcher_class
engine_class context_class request_class response_class stats_class
@@ -84,13 +86,17 @@
my $caller = caller(0);
#why does called have to ISA Catalyst and ISA Controller ?
+ #Convert test suite to not use the behavior where Myapp ISA Controller
+ # after that is done we can eliminate that little mess.
unless ( $caller->isa('Catalyst') ) {
no strict 'refs';
if( $caller->can('meta') ){
my @superclasses = ($caller->meta->superclasses, $class, 'Catalyst::Controller');
+ #my @superclasses = ($caller->meta->superclasses, $class);
$caller->meta->superclasses(@superclasses);
} else {
push @{"$caller\::ISA"}, $class, 'Catalyst::Controller';
+ #push @{"$caller\::ISA"}, $class;
}
}
@@ -1543,6 +1549,7 @@
}
$COUNT++;
+ #todo: reuse coderef from can
$class->log->_flush() if $class->log->can('_flush');
return $status;
}
@@ -1557,6 +1564,7 @@
sub prepare {
my ( $class, @arguments ) = @_;
+ #moose todo: context_class as attr with default
$class->context_class( ref $class || $class ) unless $class->context_class;
#Moose TODO: if we make empty containers the defaults then that can be
#handled by the context class itself instead of having this here
@@ -1590,6 +1598,7 @@
}
);
+ #surely this is not the most efficient way to do things...
$c->stats($class->stats_class->new)->enable($c->use_stats);
if ( $c->debug ) {
$c->res->headers->header( 'X-Catalyst' => $Catalyst::VERSION );
@@ -1972,9 +1981,6 @@
}
Class::MOP::load_class($dispatcher);
- #unless (Class::Inspector->loaded($dispatcher)) {
- # require Class::Inspector->filename($dispatcher);
- #}
# dispatcher instance
$class->dispatcher( $dispatcher->new );
@@ -2114,11 +2120,8 @@
$home = $env;
}
- unless ($home) {
- $home = Catalyst::Utils::home($class);
- }
+ $home ||= Catalyst::Utils::home($class);
- #I remember recently being scolded for assigning config values like this
if ($home) {
#I remember recently being scolded for assigning config values like this
$class->config->{home} ||= $home;
@@ -2207,7 +2210,7 @@
# no ignore_loaded here, the plugin may already have been
# defined in memory and we don't want to error on "no file" if so
- Catalyst::Utils::ensure_class_loaded( $plugin );
+ Class::MOP::load_class( $plugin );
$proto->_plugins->{$plugin} = 1;
unless ($instant) {
More information about the Catalyst-commits
mailing list