X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FLoader.pm;h=5ac028fbd3dfd5e614fea8770c60e8ba59167d90;hp=0b81933c2f9c40d58a7650b213b1fee2cb8bd715;hb=1e5dad0099d51c919670c0e765615937b0fd4dae;hpb=697a3e9ee29085ff29867445df932df6de4cff9e diff --git a/lib/Catalyst/Engine/Loader.pm b/lib/Catalyst/Engine/Loader.pm index 0b81933..5ac028f 100644 --- a/lib/Catalyst/Engine/Loader.pm +++ b/lib/Catalyst/Engine/Loader.pm @@ -12,6 +12,27 @@ has application_name => ( required => 1, ); +has catalyst_engine_class => ( + isa => 'Str', + is => 'rw', + lazy => 1, + builder => '_guess_catalyst_engine_class', +); + +sub _guess_catalyst_engine_class { + my $self = shift; + my $old_engine = Catalyst::Utils::env_value($self->application_name, 'ENGINE'); + if (!defined $old_engine) { + return 'Catalyst::Engine'; + } + elsif ($old_engine =~ /^(CGI|FCGI|HTTP|Apache.*)$/) { + return 'Catalyst::Engine'; + } + elsif (my ($type) = $old_engine =~ /^(Stomp|Test::MessageDriven|Wx)$/) { + return 'Catalyst::Engine::' . $type; + } +} + around guess => sub { my ($orig, $self) = (shift, shift); my $engine = $self->$orig(@_);