make ->setup_engine($engine) supported API again
Florian Ragwitz [Sun, 27 Mar 2011 14:33:30 +0000 (15:33 +0100)]
It should always take preference over CATALYST_ENGINE. The compat hack is really
just PSGI specific.

lib/Catalyst.pm
lib/Catalyst/EngineLoader.pm

index 71b1b74..2f49384 100644 (file)
@@ -2599,16 +2599,13 @@ sub engine_class {
 }
 
 sub setup_engine {
-    my ($class, $compat_requested_engine) = @_;
+    my ($class, $requested_engine) = @_;
 
     $class->engine_loader(
         Catalyst::EngineLoader->new({
             application_name => $class,
-            (!defined $compat_requested_engine
-                 ? ()
-                 : (compat_options => {
-                     requested_engine => $compat_requested_engine,
-                 })),
+            (defined $requested_engine
+                 ? (requested_engine => $requested_engine) : ()),
         }),
     );
 
index e59135b..5d8ae58 100644 (file)
@@ -12,21 +12,16 @@ has application_name => (
     required => 1,
 );
 
-has compat_options => (
-    traits  => ['Hash'],
-    is      => 'ro',
-    isa     => 'HashRef',
-    default => sub { +{} },
-    handles => {
-        has_compat_option => 'exists',
-        compat_option     => 'get',
-    },
+has requested_engine => (
+    is        => 'ro',
+    isa       => 'Str',
+    predicate => 'has_requested_engine',
 );
 
 sub needs_psgi_engine_compat_hack {
     my ($self) = @_;
-    return $self->has_compat_option('requested_engine')
-        && $self->compat_option('requested_engine') eq 'PSGI';
+    return $self->has_requested_engine
+        && $self->requested_engine eq 'PSGI';
 }
 
 has catalyst_engine_class => (
@@ -38,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';
     }