use Devel::REPL::Plugin;
use MooseX::AttributeHelpers;
use namespace::clean -except => [ 'meta' ];
+use Scalar::Util qw(blessed);
sub BEFORE_PLUGIN {
my $self = shift;
metaclass => 'String',
is => 'rw',
isa => 'Str',
+ lazy => 1,
default => '',
provides => {
append => 'add_to_session',
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;
};