[Bast-commits] r4403 - in trunk/Devel-REPL/lib/Devel/REPL/Plugin: . B

Sartak at dev.catalyst.perl.org Sartak at dev.catalyst.perl.org
Sun May 25 20:38:16 BST 2008


Author: Sartak
Date: 2008-05-25 20:38:16 +0100 (Sun, 25 May 2008)
New Revision: 4403

Added:
   trunk/Devel-REPL/lib/Devel/REPL/Plugin/PPI.pm
Modified:
   trunk/Devel-REPL/lib/Devel/REPL/Plugin/B/Concise.pm
Log:
Add a PPI plugin for #ppi CODE


Modified: trunk/Devel-REPL/lib/Devel/REPL/Plugin/B/Concise.pm
===================================================================
--- trunk/Devel-REPL/lib/Devel/REPL/Plugin/B/Concise.pm	2008-05-25 18:13:43 UTC (rev 4402)
+++ trunk/Devel-REPL/lib/Devel/REPL/Plugin/B/Concise.pm	2008-05-25 19:38:16 UTC (rev 4403)
@@ -75,7 +75,7 @@
 optrees of expressions.
 
 The code is not actually executed, which means that when used with
-L<Deve::REPL::Plugin::OutputCache> there is .
+L<Deve::REPL::Plugin::OutputCache> there is no new value in C<_>.
 
 The command takes the same options as L<B::Concise/compile>, e.g. C<-basic> or
 C<-exec> to determine the dump order, C<-debug>, C<-concise> and C<-terse> to

Added: trunk/Devel-REPL/lib/Devel/REPL/Plugin/PPI.pm
===================================================================
--- trunk/Devel-REPL/lib/Devel/REPL/Plugin/PPI.pm	                        (rev 0)
+++ trunk/Devel-REPL/lib/Devel/REPL/Plugin/PPI.pm	2008-05-25 19:38:16 UTC (rev 4403)
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+
+package Devel::REPL::Plugin::PPI;
+use Devel::REPL::Plugin;
+
+use PPI;
+use PPI::Dumper;
+
+use namespace::clean -except => [ 'meta' ];
+
+with qw(Devel::REPL::Plugin::Turtles);
+
+sub expr_command_ppi {
+  my ( $self, $eval, $code ) = @_;
+
+  my $document = PPI::Document->new(\$code);
+  my $dumper   = PPI::Dumper->new($document);
+  return $dumper->string;
+}
+
+__PACKAGE__
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Devel::REPL::Plugin::PPI - PPI dumping of Perl code
+
+=head1 SYNOPSIS
+
+  repl> #ppi Devel::REPL
+  PPI::Document
+    PPI::Statement
+      PPI::Token::Word    'Devel::REPL'
+        
+  repl> #ppi {
+  > warn $];
+  > }
+  PPI::Document
+    PPI::Statement::Compound
+      PPI::Structure::Block       { ... }
+        PPI::Token::Whitespace    '\n'
+        PPI::Statement
+          PPI::Token::Word        'warn'
+          PPI::Token::Whitespace          ' '
+          PPI::Token::Magic       '$]'
+          PPI::Token::Structure   ';'
+        PPI::Token::Whitespace    '\n'
+
+=head1 DESCRIPTION
+
+This plugin provides a C<ppi> command that uses L<PPI::Dumper> to dump
+L<PPI>-parsed Perl documents.
+
+The code is not actually executed, which means that when used with
+L<Deve::REPL::Plugin::OutputCache> there is no new value in C<_>.
+
+=head1 AUTHOR
+
+Shawn M Moore E<lt>sartak at gmail.comE<gt>
+
+=cut
+
+




More information about the Bast-commits mailing list