X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FScriptRole.pm;h=6bea8c1a0d35c2058a674a8d7bcfe5f2a8de5489;hp=4d93e573dd6ff9edbf9a3b82450ab89e86e158e4;hb=532f0516947cf047368e91150ca2ab1cfd4c1e64;hpb=4904ee278992db70da965b94627728085b88de54 diff --git a/lib/Catalyst/ScriptRole.pm b/lib/Catalyst/ScriptRole.pm index 4d93e57..6bea8c1 100644 --- a/lib/Catalyst/ScriptRole.pm +++ b/lib/Catalyst/ScriptRole.pm @@ -3,7 +3,8 @@ use Moose::Role; use MooseX::Types::Moose qw/Str Bool/; use Pod::Usage; use MooseX::Getopt; -use Plack::Loader; +use Catalyst::Engine::Loader; +use MooseX::Types::LoadableClass qw/LoadableClass/; use namespace::autoclean; with 'MooseX::Getopt' => { @@ -29,6 +30,26 @@ has help => ( cmd_aliases => ['?', 'h'], ); +has loader_class => ( + isa => LoadableClass, + is => 'ro', + coerce => 1, + default => 'Catalyst::Engine::Loader', + documentation => 'The class to use to detect and load the PSGI engine', +); + +has _loader => ( + isa => 'Plack::Loader', + default => sub { + shift->loader_class->new + }, + handles => { + load_engine => 'load', + autoload_engine => 'auto', + }, + lazy => 1, +); + sub _getopt_spec_exception {} sub _getopt_spec_warnings { @@ -67,10 +88,10 @@ sub _run_application { Class::MOP::load_class($app); my $server; if (my $e = $self->can('_plack_engine_name') ) { - $server = Plack::Loader->load($self->$e, $self->_plack_loader_args); + $server = $self->load_engine($self->$e, $self->_plack_loader_args); } else { - $server = Plack::Loader->auto($self->_plack_loader_args); + $server = $self->autoload_engine($self->_plack_loader_args); } $app->run($self->_application_args, $server); }