rejig to provide $REPL instead of $self, fix namespace::clean usage to not nuke meta
[p5sagit/Devel-REPL.git] / lib / Devel / REPL.pm
index ff461f5..c52f0bf 100644 (file)
@@ -2,7 +2,7 @@ package Devel::REPL;
 
 use Term::ReadLine;
 use Moose;
-use namespace::clean;
+use namespace::clean -except => [ 'meta' ];
 
 with 'MooseX::Object::Pluggable';
 
@@ -51,9 +51,9 @@ sub eval {
 }
 
 sub compile {
-  my ($self, $line) = @_;
-  my $compiled = eval $self->wrap_as_sub($line);
-  return (undef, $self->error_return("Compile error", $@)) if $@;
+  my $REPL = shift;
+  my $compiled = eval $REPL->wrap_as_sub($_[0]);
+  return (undef, $REPL->error_return("Compile error", $@)) if $@;
   return $compiled;
 }
 
@@ -68,9 +68,9 @@ sub mangle_line {
 }
 
 sub execute {
-  my $REPL = shift;
-  my @ret = eval { shift->(@_) };
-  return $REPL->error_return("Runtime error", $@) if $@;
+  my ($self, $to_exec, @args) = @_;
+  my @ret = eval { $to_exec->(@args) };
+  return $self->error_return("Runtime error", $@) if $@;
   return @ret;
 }