From: Arthur Axel 'fREW' Schmidt Date: Wed, 10 Feb 2010 07:49:29 +0000 (-0600) Subject: DDC Plugin X-Git-Tag: v1.003015~48 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=381b5fa4aeb39bf3e3eaa79eba2cee383422b273;p=p5sagit%2FDevel-REPL.git DDC Plugin --- diff --git a/Makefile.PL b/Makefile.PL index 86c84c2..e8837ba 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -32,6 +32,10 @@ feature 'DDS plugin - better format results with Data::Dump::Streamer', -default => 1, 'Data::Dump::Streamer' => 0; +feature 'DDC plugin - even better format results with Data::Dumper::Concise', + -default => 1, + 'Data::Dumper::Concise' => 0; + feature 'INC completion driver - tab complete module names in use and require', -default => 0, 'File::Next' => 0; diff --git a/lib/Devel/REPL/Plugin/DDC.pm b/lib/Devel/REPL/Plugin/DDC.pm new file mode 100644 index 0000000..e47fca4 --- /dev/null +++ b/lib/Devel/REPL/Plugin/DDC.pm @@ -0,0 +1,50 @@ +package Devel::REPL::Plugin::DDC; + +use Devel::REPL::Plugin; +use Data::Dumper::Concise (); + +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 { + $out = Data::Dumper::Concise::Dumper($to_dump); + } + } else { + $out = $to_dump; + } + $self->$orig($out); +}; + +1; + +__END__ + +=head1 NAME + +Devel::REPL::Plugin::DDC - Format results with Data::Dumper::Concise + +=head1 SYNOPSIS + + # 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 ) +[ + 2, + 4, + 6 +]; + + $ + +=cut +