Devel-REPL-1.003029
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / DDS.pm
CommitLineData
1716b200 1use strict;
2use warnings;
950232b2 3package Devel::REPL::Plugin::DDS;
9d2a4940 4# ABSTRACT: Format results with Data::Dump::Streamer
950232b2 5
c45376f3 6our $VERSION = '1.003029';
54beb05d 7
6a5409bc 8use Devel::REPL::Plugin;
950232b2 9use Data::Dump::Streamer ();
1d6c2dbc 10use namespace::autoclean;
950232b2 11
e22aa835 12around 'format_result' => sub {
767c76dd 13 my $orig = shift;
14 my $self = shift;
15 my @to_dump = @_;
16 my $out;
882e1d11 17 if (@to_dump > 1 || ref $to_dump[0]) {
767c76dd 18 if (@to_dump == 1 && overload::Method($to_dump[0], '""')) {
19 $out = "@to_dump";
20 } else {
21 my $dds = Data::Dump::Streamer->new;
22 $dds->Freezer(sub { "$_[0]"; });
23 $dds->Data(@to_dump);
24 $out = $dds->Out;
25 }
26 } else {
27 $out = $to_dump[0];
28 }
29 $self->$orig($out);
950232b2 30};
31
321;
cfd1094b 33
34__END__
35
9d2a4940 36=pod
cfd1094b 37
e4761e81 38=head1 SYNOPSIS
39
40 # in your re.pl file:
41 use Devel::REPL;
42 my $repl = Devel::REPL->new;
43 $repl->load_plugin('DDS');
44 $repl->run;
45
46 # after you run re.pl:
47 $ map $_*2, ( 1,2,3 )
48 $ARRAY1 = [
49 2,
50 4,
51 6
52 ];
53
54 $
55
cfd1094b 56=cut