increment $VERSION after 1.003029 release
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / DDS.pm
1 use strict;
2 use warnings;
3 package Devel::REPL::Plugin::DDS;
4 # ABSTRACT: Format results with Data::Dump::Streamer
5
6 our $VERSION = '1.003030';
7
8 use Devel::REPL::Plugin;
9 use Data::Dump::Streamer ();
10 use namespace::autoclean;
11
12 around 'format_result' => sub {
13    my $orig = shift;
14    my $self = shift;
15    my @to_dump = @_;
16    my $out;
17    if (@to_dump > 1 || ref $to_dump[0]) {
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);
30 };
31
32 1;
33
34 __END__
35
36 =pod
37
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
56 =cut