b9c3f33ac77d5aa88d74624d0f3d3d3b3dfcdfe1
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / DDS.pm
1 package Devel::REPL::Plugin::DDS;
2
3 use Devel::REPL::Plugin;
4 use Data::Dump::Streamer ();
5
6 around 'format_result' => sub {
7   my $orig = shift;
8   my $self = shift;
9   my $to_dump = (@_ > 1) ? [@_] : $_[0];
10   my $out;
11   if (ref $to_dump) {
12     if (overload::Method($to_dump, '""')) {
13       $out = "$to_dump";
14     } else {
15       my $dds = Data::Dump::Streamer->new;
16       $dds->Freezer(sub { "$_[0]"; });
17       $dds->Data($to_dump);
18       $out = $dds->Out;
19     }
20   } else {
21     $out = $to_dump;
22   }
23   $self->$orig($out);
24 };
25
26 1;
27
28 __END__
29
30 =head1 NAME
31
32 Devel::REPL::Plugin::DDS - Format results with Data::Dump::Streamer
33
34 =cut
35