Don't guess when setting an engine through ->engine_class
Florian Ragwitz [Tue, 11 Oct 2011 15:05:09 +0000 (17:05 +0200)]
Changes
lib/Catalyst.pm

diff --git a/Changes b/Changes
index 4228e94..9ba8c30 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,10 @@
 # This file documents the revision history for Perl extension Catalyst.
 
+  Bug fixes:
+
+   - Don't guess engine class names when setting an engine through
+     MyApp->engine_class.
+
 5.90003 - 2011-10-05 08:32:00
   Bug fixes:
 
index 4e97a49..5d0978f 100644 (file)
@@ -2619,17 +2619,32 @@ sub engine_class {
             Catalyst::EngineLoader->new({
                 application_name => $class,
                 (defined $requested_engine
-                     ? (requested_engine => $requested_engine) : ()),
+                     ? (catalyst_engine_class => $requested_engine) : ()),
             }),
         );
     }
+
     $class->engine_loader->catalyst_engine_class;
 }
 
 sub setup_engine {
     my ($class, $requested_engine) = @_;
 
-    my $engine = $class->engine_class($requested_engine);
+    my $engine = do {
+        my $loader = $class->engine_loader;
+
+        if (!$loader || $requested_engine) {
+            $loader = Catalyst::EngineLoader->new({
+                application_name => $class,
+                (defined $requested_engine
+                     ? (requested_engine => $requested_engine) : ()),
+            }),
+
+            $class->engine_loader($loader);
+        }
+
+        $loader->catalyst_engine_class;
+    };
 
     # Don't really setup_engine -- see _setup_psgi_app for explanation.
     return if $class->loading_psgi_file;