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