make ->setup_engine($engine) supported API again
[catagits/Catalyst-Runtime.git] / lib / Catalyst / EngineLoader.pm
index 3499b50..5d8ae58 100644 (file)
@@ -12,6 +12,18 @@ has application_name => (
     required => 1,
 );
 
+has requested_engine => (
+    is        => 'ro',
+    isa       => 'Str',
+    predicate => 'has_requested_engine',
+);
+
+sub needs_psgi_engine_compat_hack {
+    my ($self) = @_;
+    return $self->has_requested_engine
+        && $self->requested_engine eq 'PSGI';
+}
+
 has catalyst_engine_class => (
     isa => 'Str',
     is => 'rw',
@@ -21,7 +33,9 @@ has catalyst_engine_class => (
 
 sub _guess_catalyst_engine_class {
     my $self = shift;
-    my $old_engine = Catalyst::Utils::env_value($self->application_name, 'ENGINE');
+    my $old_engine = $self->has_requested_engine
+        ? $self->requested_engine
+        : Catalyst::Utils::env_value($self->application_name, 'ENGINE');
     if (!defined $old_engine) {
         return 'Catalyst::Engine';
     }
@@ -117,4 +131,10 @@ Catalyst Contributors, see Catalyst.pm
 This library is free software. You can redistribute it and/or modify it under
 the same terms as Perl itself.
 
+=begin Pod::Coverage
+
+needs_psgi_engine_compat_hack
+
+=end Pod::Coverage
+
 =cut