From: Florian Ragwitz Date: Sun, 27 Mar 2011 14:33:30 +0000 (+0100) Subject: make ->setup_engine($engine) supported API again X-Git-Tag: 5.89003~60 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=a26a6adbaa05988a49cf8867afccdc0cfc5bd417 make ->setup_engine($engine) supported API again It should always take preference over CATALYST_ENGINE. The compat hack is really just PSGI specific. --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 71b1b74..2f49384 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -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) : ()), }), ); diff --git a/lib/Catalyst/EngineLoader.pm b/lib/Catalyst/EngineLoader.pm index e59135b..5d8ae58 100644 --- a/lib/Catalyst/EngineLoader.pm +++ b/lib/Catalyst/EngineLoader.pm @@ -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'; }