X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FScriptRunner.pm;fp=lib%2FCatalyst%2FScriptRunner.pm;h=3797a136bfb26511f1ea0e23ef16123d9335af94;hp=26ca0fdbfa9dd0a0b2f315793d53bf92494b5092;hb=725afced1f1ab67a6e54849325368ee61715cc1f;hpb=7f2e015bc9ef152ad836524da16299bd86a5a22b diff --git a/lib/Catalyst/ScriptRunner.pm b/lib/Catalyst/ScriptRunner.pm index 26ca0fd..3797a13 100644 --- a/lib/Catalyst/ScriptRunner.pm +++ b/lib/Catalyst/ScriptRunner.pm @@ -3,40 +3,19 @@ use Moose; use FindBin; use lib; use File::Spec; +use Class::Load qw/ load_first_existing_class load_optional_class /; use namespace::autoclean -also => 'subclass_with_traits'; use Try::Tiny; sub find_script_class { my ($self, $app, $script) = @_; - my $class = "${app}::Script::${script}"; - - try { - Class::MOP::load_class($class); - } - catch { - confess $_ unless /Can't locate/; - $class = "Catalyst::Script::$script"; - }; - - Class::MOP::load_class($class); - return $class; + return load_first_existing_class("${app}::Script::${script}", "Catalyst::Script::$script"); } sub find_script_traits { my ($self, @try) = @_; - my @traits; - for my $try (@try) { - try { - Class::MOP::load_class($try); - push @traits, $try; - } - catch { - confess $_ unless /^Can't locate/; - }; - } - - return @traits; + return grep { load_optional_class($_) } @try; } sub subclass_with_traits {