[Bast-commits] r5801 - trunk/Devel-REPL/lib/Devel/REPL/Plugin

acmoore at dev.catalyst.perl.org acmoore at dev.catalyst.perl.org
Mon Mar 23 15:55:16 GMT 2009


Author: acmoore
Date: 2009-03-23 15:55:15 +0000 (Mon, 23 Mar 2009)
New Revision: 5801

Modified:
   trunk/Devel-REPL/lib/Devel/REPL/Plugin/Nopaste.pm
Log:
Adding comment formatting option to the nopaste plugin

This patch adds the ability to configure the format of the session as
is sent to the nopaste server. Formerly, the perl commands were
commented out and the output of them was not. This patch provides a
configuration option to swtich that behavior so that by default the
perl code is not commented out, but the output from each statement is
and this can be optionally switched back to the former behavior.


Modified: trunk/Devel-REPL/lib/Devel/REPL/Plugin/Nopaste.pm
===================================================================
--- trunk/Devel-REPL/lib/Devel/REPL/Plugin/Nopaste.pm	2009-03-22 23:22:22 UTC (rev 5800)
+++ trunk/Devel-REPL/lib/Devel/REPL/Plugin/Nopaste.pm	2009-03-23 15:55:15 UTC (rev 5801)
@@ -2,6 +2,7 @@
 
 use Devel::REPL::Plugin;
 use MooseX::AttributeHelpers;
+use Moose::Util::TypeConstraints;
 use namespace::clean -except => [ 'meta' ];
 use Scalar::Util qw(blessed);
 
@@ -29,12 +30,21 @@
     default   => 'Devel::REPL session',
 );
 
+has 'nopaste_format' => (
+    is      => 'rw',
+    isa     => enum( [qw[ comment_code comment_output ]] ),
+    lazy    => 1,
+    default => 'comment_output',
+);
+
 before eval => sub {
     my $self = shift;
     my $line = shift;
 
-    # prepend each line with #
-    $line =~ s/^/# /mg;
+    if ( $self->nopaste_format() eq 'comment_code' ) {
+        # prepend each line with #
+        $line =~ s/^/# /mg;
+    }
 
     $self->add_to_session($line . "\n");
 };
@@ -55,6 +65,11 @@
         }
     } @ret;
 
+    if ( $self->nopaste_format() eq 'comment_output' ) {
+        # prepend each line with #
+        map { $_ =~ s/^/# /mg } @ret_as_str;
+    }
+
     $self->add_to_session(join("\n", @ret_as_str) . "\n\n");
 
     return @ret;
@@ -103,6 +118,25 @@
 
 defaults to 'Devel::REPL session'
 
+=head1 CONFIGURATION
+
+=head2 nopaste_format
+
+The format sent to the nopaste server can be adjusted with the
+C<nopaste_format> option. By default, the output of each perl
+statement is commented out, and the perl statements themselves are
+not. This can be reversed by setting the C<nopaste_format> attribute
+to C<comment_code> like this in your re.pl file:
+
+C<< $_REPL->nopaste_format( 'comment_code' ); >>
+
+The default of commenting out the output would be set like this:
+
+C<< $_REPL->nopaste_format( 'comment_output' ); >>
+
+These options can be set during a Devel::REPL session, but only affect
+the future parts of the session, not the past parts.
+
 =head1 AUTHOR
 
 Shawn M Moore, C<< <sartak at gmail dot com> >>




More information about the Bast-commits mailing list