Devel::REPL::Plugin::Peek
nothingmuch [Mon, 5 May 2008 18:32:24 +0000 (18:32 +0000)]
git-svn-id: http://dev.catalyst.perl.org/repos/bast/trunk/Devel-REPL@4325 bd8105ee-0ff8-0310-8827-fb3f25b6796d

lib/Devel/REPL/Plugin/Peek.pm [new file with mode: 0644]

diff --git a/lib/Devel/REPL/Plugin/Peek.pm b/lib/Devel/REPL/Plugin/Peek.pm
new file mode 100644 (file)
index 0000000..e6f4893
--- /dev/null
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+
+package Devel::REPL::Plugin::Peek;
+use Devel::REPL::Plugin;
+
+use Devel::Peek qw(Dump);
+
+use namespace::clean -except => [ 'meta' ];
+
+with qw(Devel::REPL::Plugin::Turtles);
+
+sub expr_command_peek {
+  my ( $self, $eval, $code ) = @_;
+
+  if ( my $cont = $self->can("continue_reading_if_necessary") ) {
+    $code = $self->$cont($code);
+  }
+
+  # can't override output properly
+  # FIXME do some dup wizardry
+  Dump( $self->eval($code) );
+
+  return ""; # this is a hack to print nothing after Dump has already printed. PLZ TO FIX KTHX!
+}
+
+__PACKAGE__
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Devel::REPL::Plugin::Peek - L<Devel::Peek> plugin for L<Devel::REPL>.
+
+=head1 SYNOPSIS
+
+  repl> #peek "foo"
+  SV = PV(0xb3dba0) at 0xb4abc0
+    REFCNT = 1
+    FLAGS = (POK,READONLY,pPOK)
+    PV = 0x12bcf70 "foo"\0
+    CUR = 3
+    LEN = 4
+
+=head1 DESCRIPTION
+
+This L<Devel::REPL::Plugin> adds a C<peek> command that calls
+L<Devel::Peek/Dump> instead of the normal printing.
+
+=head1 SEE ALSO
+
+L<Devel::REPL>, L<Devel::Peek>
+
+=head1 AUTHOR
+
+Yuval Kogman E<lt>nothingmuch@woobling.orgE<gt>
+
+=cut