X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/65b2387a54494a8cbc1d011602ae3f8d7208ea4d..f93b80e46fe43b677abf8bfa71cca68b9ec0c805:/modules/override/Devel/REPL/Plugin/AutoloadModules.pm diff --git a/modules/override/Devel/REPL/Plugin/AutoloadModules.pm b/modules/override/Devel/REPL/Plugin/AutoloadModules.pm deleted file mode 100644 index e36ee9654..000000000 --- a/modules/override/Devel/REPL/Plugin/AutoloadModules.pm +++ /dev/null @@ -1,29 +0,0 @@ -package Devel::REPL::Plugin::AutoloadModules; - -use Moose::Role; -use namespace::clean -except => [ 'meta' ]; -use Data::Dumper; - -has 'autoloaded' => ( is => 'rw', isa => 'HashRef', default => sub { {} } ); - -my $re = qr/Runtime error: Can.t locate object method "\w+" via package "\w+" \(perhaps you forgot to load "(\w+)"\?\)/; -around 'execute' => sub { - my $orig = shift; - my $self = shift; - - my @re = $self->$orig(@_); # original call - - return @re unless defined $re[0] && $re[0] =~ /$re/; # if there is no "perhaps you forgot" error, just return - my $module = $1; # save the missing package name - - return @re if $self->autoloaded->{$module}; # if we tried to load it before, give up and return the error - - $self->autoloaded->{$module} = 1; # make sure we don't try this again - $self->eval("use SL::$module"); # try to load the missing module - - @re = $self->$orig(@_); # try again - - return @re; -}; - -1;