512d48c6cd6165c8aca46a9499e2cc7fa3fc8afc
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / DDS.pm
1 package Devel::REPL::Plugin::DDS;
2
3 use Moose::Role;
4 use Data::Dump::Streamer ();
5
6 around 'print' => sub {
7   my $orig = shift;
8   my $self = shift;
9   my $to_dump = (@_ > 1) ? [@_] : $_[0];
10   my $out;
11   if (ref $to_dump) {
12     my $dds = Data::Dump::Streamer->new;
13     $dds->Freezer(sub { "$_[0]"; });
14     $dds->Data($to_dump);
15     $out = $dds->Out;
16   } else {
17     $out = $to_dump;
18   }
19   $self->$orig($out);
20 };
21
22 1;