use traits from Moose rather than MooseX::AttributeHelpers
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / Turtles.pm
index c412237..5f323fe 100644 (file)
@@ -3,9 +3,7 @@ use Devel::REPL::Plugin;
 
 use Scalar::Util qw(reftype);
 
-use MooseX::AttributeHelpers;
-
-use namespace::clean -except => [ 'meta' ];
+use namespace::autoclean;
 
 has default_command_prefix => (
   isa => "RegexpRef",
@@ -14,12 +12,13 @@ has default_command_prefix => (
 );
 
 has turtles_matchers => (
-  metaclass => "Collection::Array",
+  traits => ['Array'],
   isa => "ArrayRef[RegexpRef|CodeRef]",
   is  => "rw",
+  lazy => 1,
   default => sub { my $prefix = shift->default_command_prefix; [qr/^ $prefix (\w+) \s* (.*) /x] },
-  provides => {
-    unshift => "add_turtles_matcher",
+  handles => {
+    add_turtles_matcher => 'unshift',
   },
 );
 
@@ -74,5 +73,19 @@ __END__
 
 Devel::REPL::Plugin::Turtles - Generic command creation using a read hook
 
+=head1 DESCRIPTION
+
+By default, this plugin allows calling commands using a read hook
+to detect a default_command_prefix followed by the command name,
+say MYCMD as an example.  The actual routine to call for the
+command is constructed by looking for subs named 'command_MYCMD'
+or 'expr_MYCMD' and executing them.
+
+=head2 NOTE
+
+The C<default_command_prefix> is C<qr/\#/> so care must be taken
+if other uses for that character are needed (e.g., '#' for the
+shell escape character in the PDL shell.
+
 =cut