use UNIVERSAL::require;
use Catalyst::Log;
-__PACKAGE__->mk_classdata($_) for qw/_config log/;
+__PACKAGE__->mk_classdata($_) for qw/_config engine log/;
-our $VERSION = '4.32';
+our $VERSION = '5.00';
our @ISA;
=head1 NAME
See L<Catalyst::Manual> for more documentation.
Catalyst plugins can be loaded by naming them as arguments to the "use Catalyst" statement.
-Omit the C<Catalyst::Plugin::> prefix from the plugin name,
+Omit the C<Catalyst::Plugin::> prefix from the plugin name,
so C<Catalyst::Plugin::My::Module> becomes C<My::Module>.
use Catalyst 'My::Module';
my ( $self, @options ) = @_;
my $caller = caller(0);
- # Class
- {
+ unless ( $caller->isa($self) ) {
no strict 'refs';
- *{"$caller\::handler"} =
- sub { Catalyst::Engine::handler( $caller, @_ ) };
+ push @{"$caller\::ISA"}, $self;
+ }
- unless ( $caller->isa($self) ) {
- push @{"$caller\::ISA"}, $self;
- }
+ unless ( $caller->log ) {
+ $caller->log( Catalyst::Log->new );
}
- unless ( $self->log ) {
- $self->log( Catalyst::Log->new );
+ if ( $ENV{CATALYST_DEBUG} || $ENV{ uc($caller) . '_DEBUG' } ) {
+ no strict 'refs';
+ *{"$caller\::debug"} = sub { 1 };
+ $caller->log->debug('Debug messages enabled');
}
# Options
- my $engine =
- $ENV{MOD_PERL} ? 'Catalyst::Engine::Apache' : 'Catalyst::Engine::CGI';
+ my $engine = $ENV{MOD_PERL}
+ ? 'Catalyst::Engine::Apache'
+ : 'Catalyst::Engine::CGI';
+
foreach (@options) {
if (/^\-Debug$/) {
- no warnings;
+ next if $caller->debug;
no strict 'refs';
*{"$caller\::debug"} = sub { 1 };
$caller->log->debug('Debug messages enabled');
no strict 'refs';
push @{"$caller\::ISA"}, $engine;
}
+ $caller->engine($engine);
$caller->log->debug(qq/Loaded engine "$engine"/) if $caller->debug;
}
+=item $c->engine
+
+Contains the engine class.
+
=item $c->log
Contains the logging object. Unless it is already set Catalyst sets this up with a
http://lists.rawmode.org/mailman/listinfo/catalyst
http://lists.rawmode.org/mailman/listinfo/catalyst-dev
-
+
=head1 SEE ALSO
L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
=head1 THANK YOU
Andrew Ford, Andrew Ruthven, Christian Hansen, Christopher Hicks,
-Danijel Milicevic, David Naughton, Gary Ashton Jones, Jesse Sheidlower,
-Johan Lindstrom, Marcus Ramberg, Tatsuhiko Miyagawa and all the others
-who've helped.
+Dan Sully, Danijel Milicevic, David Naughton, Gary Ashton Jones,
+Jesse Sheidlower, Johan Lindstrom, Marcus Ramberg, Tatsuhiko Miyagawa
+and all the others who've helped.
=head1 LICENSE