Move to Moo for fast bootstrapping.
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / CompletionDriver / Methods.pm
index f9d4e60..bbbb0f4 100644 (file)
@@ -1,8 +1,15 @@
 package Devel::REPL::Plugin::CompletionDriver::Methods;
 use Devel::REPL::Plugin;
-use namespace::clean -except => [ 'meta' ];
+use namespace::sweep;
+use Package::Stash;
+use Scalar::Util qw(blessed);
 
-with 'Devel::REPL::Plugin::FindVariable';
+sub BEFORE_PLUGIN {
+    my $self = shift;
+    for (qw/Completion FindVariable/) {
+        $self->load_plugin($_);
+    }
+}
 
 around complete => sub {
   my $orig = shift;
@@ -46,16 +53,26 @@ around complete => sub {
 
   # now we have $class->$incomplete
 
-  my $metaclass = Class::MOP::Class->initialize($class);
+  my $metaclass = Package::Stash->new($class);
 
   my $re = qr/^\Q$incomplete/;
 
   return $orig->(@_),
          grep { $_ =~ $re }
-         map  { $_->{name} }
-         $metaclass->compute_all_applicable_methods;
+         $metaclass->list_all_symbols('CODE');
 };
 
 1;
 
+__END__
+
+=head1 NAME
+
+Devel::REPL::Plugin::CompletionDriver::Methods - Complete class or object method names
+
+=head1 AUTHOR
+
+Shawn M Moore, C<< <sartak at gmail dot com> >>
+
+=cut