X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FTurtles.pm;h=9781cc2be0fab2c5c7849a0eb3c73f9972e089d9;hp=ba26705f6537190f7170e000afc3ba6b8373a3cd;hb=e2d0b0198529e2e06593df8ebab7a8413bc932e1;hpb=8bf7245015d1b51f0c798f46e4ca3d823caab814 diff --git a/lib/Devel/REPL/Plugin/Turtles.pm b/lib/Devel/REPL/Plugin/Turtles.pm index ba26705..9781cc2 100644 --- a/lib/Devel/REPL/Plugin/Turtles.pm +++ b/lib/Devel/REPL/Plugin/Turtles.pm @@ -3,25 +3,30 @@ use Devel::REPL::Plugin; use Scalar::Util qw(reftype); -use namespace::clean -except => [ 'meta' ]; +use namespace::sweep; +use MooX::Types::MooseLike::Base qw(RegexpRef ArrayRef CodeRef AnyOf); has default_command_prefix => ( - isa => "RegexpRef", + isa => RegexpRef, is => "rw", + lazy => 1, default => sub { qr/\#/ }, ); has turtles_matchers => ( - metaclass => "Collection::Array", - isa => "ArrayRef[RegexpRef|CodeRef]", + isa => ArrayRef[AnyOf[RegexpRef,CodeRef]], is => "rw", lazy => 1, - default => sub { my $prefix = shift->default_command_prefix; [qr/^ $prefix (\w+) \s* (.*) /x] }, - handles => { - add_turtles_matcher => 'unshift', + default => sub { + my $prefix = shift->default_command_prefix; [qr/^ $prefix (\w+) \s* (.*) /x] }, ); +sub add_turtles_matcher { + my $self = shift; + unshift @{$self->turtles_matchers}, @_; +} + around 'formatted_eval' => sub { my $next = shift; my ($self, $line, @args) = @_;