DDC Plugin
Arthur Axel 'fREW' Schmidt [Wed, 10 Feb 2010 07:49:29 +0000 (01:49 -0600)]
Makefile.PL
lib/Devel/REPL/Plugin/DDC.pm [new file with mode: 0644]

index 86c84c2..e8837ba 100644 (file)
@@ -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 (file)
index 0000000..e47fca4
--- /dev/null
@@ -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
+