# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.80001';
+our $VERSION = '5.80002';
{
my $dev_version = $VERSION =~ /_\d{2}$/;
}
# Call plugins setup, this is stupid and evil.
+ # Also screws C3 badly on 5.10, hack to avoid.
{
no warnings qw/redefine/;
local *setup = sub { };
- $class->setup;
+ $class->setup unless $Catalyst::__AM_RESTARTING;
}
# Initialize our data structure
# applying modifiers).
Scope::Upper::reap(sub {
my $meta = Class::MOP::get_metaclass_by_name($class);
- $meta->make_immutable unless $meta->is_immutable;
+ $meta->make_immutable(replace_constructor => 1) unless $meta->is_immutable;
}, Scope::Upper::SCOPE(1));
$class->setup_finalize;
$levels ||= '';
$levels =~ s/^\s+//;
$levels =~ s/\s+$//;
- my %levels = map { $_ => 1 } split /\s*,\s*/, $levels || '';
-
+ my %levels = map { $_ => 1 } split /\s*,\s*/, $levels;
+
+ my $env_debug = Catalyst::Utils::env_value( $class, 'DEBUG' );
+ if ( defined $env_debug ) {
+ $levels{debug} = 1 if $env_debug; # Ugly!
+ delete($levels{debug}) unless $env_debug;
+ }
+
unless ( $class->log ) {
$class->log( Catalyst::Log->new(keys %levels) );
}
- my $env_debug = Catalyst::Utils::env_value( $class, 'DEBUG' );
- if ( defined($env_debug) or $levels{debug} ) {
+ if ( $levels{debug} ) {
Class::MOP::get_metaclass_by_name($class)->add_method('debug' => sub { 1 });
$class->log->debug('Debug messages enabled');
}