Devel-Trepan-Shell

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

      "runtime" : {
         "requires" : {
            "Devel::REPL" : "0",
            "Devel::Trepan" : "0.58",
            "perl" : "5.008008",
            "version" : "0"
         }
      }
   },
   "provides" : {
      "Devel::REPL::Plugin::Perl5db" : {
         "file" : "lib/Devel/REPL/Plugin/Perl5db.pm",
         "version" : 0
      },
      "Devel::REPL::Plugin::Trepan" : {
         "file" : "lib/Devel/REPL/Plugin/Trepan.pm",
         "version" : 0
      },
      "Devel::REPL::Plugin::TrepanShell" : {
         "file" : "lib/Devel/REPL/Plugin/TrepanShell.pm",
         "version" : 0
      },
      "Devel::Trepan::CmdProcessor::Command::Shell" : {
         "file" : "lib/Devel/Trepan/CmdProcessor/Command/Shell.pm",
         "version" : 0
      },
      "Devel::Trepan::Shell" : {
         "file" : "lib/Devel/Trepan/Shell.pm",
         "version" : "1.5"

META.yml  view on Meta::CPAN

configure_requires:
  Module::Build: 0.32
dynamic_config: 1
generated_by: 'Module::Build version 0.4007, CPAN::Meta::Converter version 2.120921'
license: open_source
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: 1.4
name: Devel-Trepan-Shell
provides:
  Devel::REPL::Plugin::Perl5db:
    file: lib/Devel/REPL/Plugin/Perl5db.pm
    version: 0
  Devel::REPL::Plugin::Trepan:
    file: lib/Devel/REPL/Plugin/Trepan.pm
    version: 0
  Devel::REPL::Plugin::TrepanShell:
    file: lib/Devel/REPL/Plugin/TrepanShell.pm
    version: 0
  Devel::Trepan::CmdProcessor::Command::Shell:
    file: lib/Devel/Trepan/CmdProcessor/Command/Shell.pm
    version: 0
  Devel::Trepan::Shell:
    file: lib/Devel/Trepan/Shell.pm
    version: 1.5
requires:
  Devel::REPL: 0

lib/Devel/REPL/Plugin/Perl5db.pm  view on Meta::CPAN

package Devel::REPL::Plugin::Perl5db;

use Devel::REPL::Plugin;
use Enbugger 'perl5db';
use namespace::clean -except => [ 'meta' ];

has 'history' => (
   isa => 'ArrayRef', is => 'rw', required => 1, lazy => 1,
   default => sub { [] }
);

around 'read' => sub {
   my $orig = shift;
   my ($self, @args) = @_;
   my $line = $self->$orig(@args);
   if (defined $line) {
       if ($line =~ m/^%perl5db\s+(.*)$/) {
	   my $eval_code = $1;
	   $DB::eval_string = 
"package Devel::REPL::Plugin::Packages::DefaultScratchpad;
Enbugger->stop;  # newline is nice to have in showing code
$eval_code;
\$DB::signal = \$DB::single = \$DB::trace = 0;";
	   eval $DB::eval_string;
	   return $@;
       }
   }
   return $line;
};

1;

__END__

=head1 NAME

Devel::REPL::Plugin::TrepanShell - Add '%' commands to call back Trepan in a Devel::REPL shell invoked from Devel::Trepan

=cut

lib/Devel/REPL/Plugin/Trepan.pm  view on Meta::CPAN

package Devel::REPL::Plugin::Trepan;

use Devel::REPL::Plugin;
use Enbugger 'trepan';
use namespace::clean -except => [ 'meta' ];

has 'history' => (
   isa => 'ArrayRef', is => 'rw', required => 1, lazy => 1,
   default => sub { [] }
);

around 'read' => sub {
   my $orig = shift;
   my ($self, @args) = @_;
   my $line = $self->$orig(@args);
   if (defined $line) {
       if ($line =~ m/^%trepan\s+(.*)$/) {
	   my $eval_code = $1;
	   $DB::eval_string = 
"package Devel::REPL::Plugin::Packages::DefaultScratchpad;
Enbugger->stop;  # newline is nice to have in showing code
$eval_code;
\$DB::signal = \$DB::single = \$DB::trace = 0;";
	   eval $DB::eval_string;
	   return $@;
       }
   }
   return $line;
};

1;

__END__

=head1 NAME

Devel::REPL::Plugin::TrepanShell - Add '%' commands to call back Trepan in a Devel::REPL shell invoked from Devel::Trepan

=cut

lib/Devel/REPL/Plugin/TrepanShell.pm  view on Meta::CPAN

package Devel::REPL::Plugin::TrepanShell;

use Devel::REPL::Plugin;
use namespace::clean -except => [ 'meta' ];

has 'history' => (
   isa => 'ArrayRef', is => 'rw', required => 1, lazy => 1,
   default => sub { [] }
);

around 'read' => sub {
   my $orig = shift;
   my ($self, @args) = @_;

lib/Devel/REPL/Plugin/TrepanShell.pm  view on Meta::CPAN

   }
   return $line;
};

1;

__END__

=head1 NAME

Devel::REPL::Plugin::TrepanShell - Add '%' commands to call back Trepan in a Devel::REPL shell invoked from Devel::Trepan

=cut

lib/Devel/Trepan/CmdProcessor/Command/Shell.pm  view on Meta::CPAN

# Copyright (C) 2011-2012, 2014 Rocky Bernstein <rocky@cpan.org>
use warnings; no warnings 'redefine';

package Devel::REPL::Plugin::TrepanShell;

use Devel::REPL::Plugin;
use namespace::clean -except => [ 'meta' ];

has 'history' => (
   isa => 'ArrayRef', is => 'rw', required => 1, lazy => 1,
   default => sub { [] }
);

around 'read' => sub {
   my $orig = shift;
   my ($self, @args) = @_;
   my $line = $self->$orig(@args);
   if (defined $line) {
      if ($line =~ m/^%(.*)$/) {
         $Devel::REPL::Plugin::TrepanShell::DEBUGGER_COMMAND = $1;
         return undef;
      }
   }
   return $line;
};

my $repl;
use rlib '../../../..';
package Devel::Trepan::CmdProcessor::Command::Shell;
use vars qw($DEBUGGER_COMMAND);

lib/Devel/Trepan/CmdProcessor/Command/Shell.pm  view on Meta::CPAN

  }

  while (!$proc->{leave_cmd_loop}) {
    $DEBUGGER_COMMAND='';
    eval {
      $repl->run;
    };
    if ($EVAL_ERROR) {
      $self->errmsg($EVAL_ERROR);
    }
    my $cmd = $Devel::REPL::Plugin::TrepanShell::DEBUGGER_COMMAND;
    if ($cmd) {
      $proc->run_command($cmd);
    } else { last; }
  }
}

unless (caller) {
    require Devel::Trepan::CmdProcessor;
    my $proc = Devel::Trepan::CmdProcessor->new(undef, 'bogus');
    my $cmd = __PACKAGE__->new($proc);



( run in 0.327 second using v1.01-cache-2.11-cpan-4ee56698ea0 )