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;
};
1;
+__END__
+
+=head1 NAME
+
+Devel::REPL::Plugin::Nopaste - #nopaste to upload session's input and output
+
+=head1 AUTHOR
+
+Shawn M Moore, C<< <sartak at gmail dot com> >>
+
+=cut
+