1 package Devel::REPL::Plugin::Nopaste;
3 use Devel::REPL::Plugin;
4 use MooseX::AttributeHelpers;
5 use namespace::clean -except => [ 'meta' ];
6 use Scalar::Util qw(blessed);
10 $self->load_plugin('Turtles');
13 has complete_session => (
14 metaclass => 'String',
20 append => 'add_to_session',
25 metaclass => 'String',
29 default => 'Devel::REPL session',
36 # prepend each line with #
39 $self->add_to_session($line . "\n");
47 my @ret = $orig->($self, $line, @_);
48 my @ret_as_str = map {
51 } elsif (blessed($_) && $_->can('stringify')) {
58 $self->add_to_session(join("\n", @ret_as_str) . "\n\n");
67 return App::Nopaste->nopaste(
68 text => $self->complete_session,
69 desc => $self->paste_title(),
74 sub command_pastetitle {
75 my ( $self, undef, $title ) = @_;
77 $self->paste_title( $title );
86 Devel::REPL::Plugin::Nopaste - #nopaste to upload session's input and output
90 This module provides these commands to your Devel::REPL shell:
94 The C<#nopaste> sends a transcript of your session to a nopaste
99 The C<#pastetitle> command allows you to set the title of the paste on
100 the nopaste site. For example:
102 C<#pastetitle example of some code>
104 defaults to 'Devel::REPL session'
108 Shawn M Moore, C<< <sartak at gmail dot com> >>
114 =item Andrew Moore - C<< <amoore@cpan.org> >>