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=283fdfb42f9ce14ea471dedfe45b10bb4457c84d;hp=18ef7bebfe3e93142e18221238e4963a4d9d59bb;hb=bbea729e0b9c3eb63931565b7047b447e3e45b88;hpb=cfd1094b45c394258ccda08216f1435bf40e1d50 diff --git a/lib/Devel/REPL/Plugin/Nopaste.pm b/lib/Devel/REPL/Plugin/Nopaste.pm index 18ef7be..283fdfb 100644 --- a/lib/Devel/REPL/Plugin/Nopaste.pm +++ b/lib/Devel/REPL/Plugin/Nopaste.pm @@ -1,15 +1,20 @@ package Devel::REPL::Plugin::Nopaste; -use Moose::Role; +use Devel::REPL::Plugin; use MooseX::AttributeHelpers; use namespace::clean -except => [ 'meta' ]; +use Scalar::Util qw(blessed); -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', @@ -32,8 +37,17 @@ around eval => sub { my $line = shift; my @ret = $orig->($self, $line, @_); - - $self->add_to_session(join("\n", @ret) . "\n\n"); + my @ret_as_str = map { + if (!defined($_)) { + ''; + } elsif (blessed($_) && $_->can('stringify')) { + $_->stringify(); + } else { + $_; + } + } @ret; + + $self->add_to_session(join("\n", @ret_as_str) . "\n\n"); return @ret; }; @@ -57,5 +71,9 @@ __END__ Devel::REPL::Plugin::Nopaste - #nopaste to upload session's input and output +=head1 AUTHOR + +Shawn M Moore, C<< >> + =cut