X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FDDS.pm;h=784b15618708b545746187fb0461e286ca03d94d;hp=b9c3f33ac77d5aa88d74624d0f3d3d3b3dfcdfe1;hb=77327851f87a17466307e8fccdbf2e0d3c2e58dc;hpb=565d0d47c0967e72abd4e54ce4aed9ffd2f3dbc9 diff --git a/lib/Devel/REPL/Plugin/DDS.pm b/lib/Devel/REPL/Plugin/DDS.pm index b9c3f33..784b156 100644 --- a/lib/Devel/REPL/Plugin/DDS.pm +++ b/lib/Devel/REPL/Plugin/DDS.pm @@ -1,35 +1,56 @@ +use strict; +use warnings; package Devel::REPL::Plugin::DDS; +# ABSTRACT: Format results with Data::Dump::Streamer + +our $VERSION = '1.003030'; use Devel::REPL::Plugin; use Data::Dump::Streamer (); +use namespace::autoclean; around 'format_result' => sub { - my $orig = shift; - my $self = shift; - my $to_dump = (@_ > 1) ? [@_] : $_[0]; - my $out; - if (ref $to_dump) { - if (overload::Method($to_dump, '""')) { - $out = "$to_dump"; - } else { - my $dds = Data::Dump::Streamer->new; - $dds->Freezer(sub { "$_[0]"; }); - $dds->Data($to_dump); - $out = $dds->Out; - } - } else { - $out = $to_dump; - } - $self->$orig($out); + my $orig = shift; + my $self = shift; + my @to_dump = @_; + my $out; + if (@to_dump > 1 || ref $to_dump[0]) { + if (@to_dump == 1 && overload::Method($to_dump[0], '""')) { + $out = "@to_dump"; + } else { + my $dds = Data::Dump::Streamer->new; + $dds->Freezer(sub { "$_[0]"; }); + $dds->Data(@to_dump); + $out = $dds->Out; + } + } else { + $out = $to_dump[0]; + } + $self->$orig($out); }; 1; __END__ -=head1 NAME +=pod -Devel::REPL::Plugin::DDS - Format results with Data::Dump::Streamer +=head1 SYNOPSIS -=cut + # in your re.pl file: + use Devel::REPL; + my $repl = Devel::REPL->new; + $repl->load_plugin('DDS'); + $repl->run; + + # after you run re.pl: + $ map $_*2, ( 1,2,3 ) + $ARRAY1 = [ + 2, + 4, + 6 + ]; + $ + +=cut