X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FNopaste.pm;h=40fa76db40871b110ce5983c4e99059042515096;hp=19e30ae976153a32f4c77ddae10cfb857f2e8aaa;hb=8995c74bf1817f85cf6ff85128d1cb9107c9c0db;hpb=24cc824faa918e5ac9f61b122d7e22b1fc47219d diff --git a/lib/Devel/REPL/Plugin/Nopaste.pm b/lib/Devel/REPL/Plugin/Nopaste.pm index 19e30ae..40fa76d 100644 --- a/lib/Devel/REPL/Plugin/Nopaste.pm +++ b/lib/Devel/REPL/Plugin/Nopaste.pm @@ -1,36 +1,43 @@ package Devel::REPL::Plugin::Nopaste; -use Moose::Role; +use Devel::REPL::Plugin; use MooseX::AttributeHelpers; use namespace::clean -except => [ 'meta' ]; -with 'Devel::REPL::Plugin::Turtles'; +sub BEFORE_PLUGIN { + my $self = shift; + $self->load_plugin('Turtles'); +} has complete_session => ( metaclass => 'String', is => 'rw', isa => 'Str', + lazy => 1, default => '', provides => { append => 'add_to_session', }, ); -around eval => sub { - my $orig = shift; +before eval => sub { my $self = shift; my $line = shift; - my @ret = $orig->($self, $line, @_); - # prepend each line with # $line =~ s/^/# /mg; - my $step = $line . "\n" - . join("\n", @ret) - . "\n\n"; + $self->add_to_session($line . "\n"); +}; + +around eval => sub { + my $orig = shift; + my $self = shift; + my $line = shift; + + my @ret = $orig->($self, $line, @_); - $self->add_to_session($step); + $self->add_to_session(join("\n", @ret) . "\n\n"); return @ret; }; @@ -48,3 +55,15 @@ sub command_nopaste { 1; +__END__ + +=head1 NAME + +Devel::REPL::Plugin::Nopaste - #nopaste to upload session's input and output + +=head1 AUTHOR + +Shawn M Moore, C<< >> + +=cut +