Devel-Events

 view release on metacpan or  search on metacpan

lib/Devel/Events/Generator/LineTrace.pm  view on Meta::CPAN

BEGIN { $^P |= 0x02 }

package Devel::Events::Generator::LineTrace;
# vim: set ts=2 sw=2 noet nolist :
# ABSTRACT: Generate C<executing_line> events using the perl debugger api
our $VERSION = '0.10';
use Moose;

with qw/Devel::Events::Generator/;

use Scalar::Util qw/weaken/;

my $SINGLETON;

sub DB::DB {
	if ( $SINGLETON ) {
		my ( $package, $file, $line ) = caller;
		return if $package =~ /^Devel::Events::/;
		$SINGLETON->line( package => $package, file => $file, line => $line );
	}
}

sub enable {
	my $self = shift;
	$SINGLETON = $self;
	weaken($SINGLETON);
}

sub disable {
	$SINGLETON = undef;
}

sub line {
	my ( $self, @args ) = @_;
	$self->send_event( executing_line => @args );
}

lib/Devel/Events/Generator/Require.pm  view on Meta::CPAN

package Devel::Events::Generator::Require;
# vim: set ts=2 sw=2 noet nolist :
# ABSTRACT: Event generator for loading of code using C<require>
our $VERSION = '0.10';
use strict;
use warnings;

use Try::Tiny;
use Sub::Uplevel;
use Scalar::Util qw(weaken);

my $SINGLETON;

BEGIN {
	# before Moose or anything else is parsed, we overload CORE::GLOBAL::require

	require Carp::Heavy;

	*CORE::GLOBAL::require = sub {
		my $file = shift;

lib/Devel/Events/Generator/Require.pm  view on Meta::CPAN

	}
}

use Moose;

with qw(Devel::Events::Generator);

sub enable {
	my $self = shift;
	$SINGLETON = $self;
	weaken($SINGLETON);
}

sub disable {
	$SINGLETON = undef;
}

sub try_require {
	my ( $self, @args ) = @_;

	$self->send_event( try_require => @args );

lib/Devel/Events/Generator/SubTrace.pm  view on Meta::CPAN

	my ( $self, @data ) = @_;
	local $IGNORE = 1;

	$self->send_event( leave_sub => @data );
}

sub enable {
	my $self = shift;
	local $IGNORE = 1;
	$SINGLETON = $self;
	Scalar::Util::weaken($SINGLETON);
}

sub disable {
	$SINGLETON = undef;
}

__PACKAGE__;

__END__



( run in 2.184 seconds using v1.01-cache-2.11-cpan-65fba6d93b7 )