Class-Easy
view release on metacpan or search on metacpan
lib/Class/Easy.pm view on Meta::CPAN
$sub_by_type->{imported}->{$real_package}->{$real_sub} = $sub; # who needs $real_sub ?
}
}
wantarray
? (keys %{$sub_by_type->{method}}, keys %{$sub_by_type->{runtime}})
: $sub_by_type;
}
sub list_all_subs_for {
my $module = shift || (caller)[0];
my $filter = shift || '';
$module = ref $module
if ref $module;
my $namespace = \%{$module . '::'};
my $linear_isa;
if ($] < 5.009_005) {
lib/Class/Easy/Log.pm view on Meta::CPAN
my $category;
my $appender;
my $ref;
if (defined $_[1]) {
$ref = ref \$_[1];
}
unless (@_) { # if type omitted, we use current package name as type
$category = (caller)[0];
} elsif (scalar (@_) == 2 and $ref eq 'GLOB' and defined *{$_[1]}{IO}) {
$category = $_[0];
$appender = $_[1];
} elsif ((@_ == 2 or @_ == 1) and exists $driver_config->{$_[0]}) {
$driver_id = $_[0];
$category = @_ == 1 ? (caller)[0] : $_[1];
} elsif (@_ == 1) {
$category = $_[0];
} else {
die "you must use logger (), logger (driver), logger (category) or logger (driver => category)";
}
my $self;
unless (defined $driver_id) { # basic internal driver require no processing
my $existing_logger = $int_loggers->{$category};
$self = $existing_logger || bless {
category => $category,
broker => '',
}, 'Class::Easy::Log';
unless (defined $existing_logger) {
$int_loggers->{$category} = $self;
Class::Easy::make_accessor ((caller)[0], 'log_'.$category, default => sub {
my $caller1 = [caller (1)];
my $caller0 = [caller];
unshift @_, $category, $self, $caller1, $caller0;
goto &_wrapper;
});
Class::Easy::make_accessor ((caller)[0], 'timer_'.$category, default => sub {
Class::Easy::Timer->new (@_, $self)
});
}
} elsif (defined $driver_config->{$driver_id}) { # driver defined
my $driver = $driver_config->{$driver_id};
$self = $driver->{package}->can ($driver->{constructor})->($driver->{package}, $category);
Class::Easy::make_accessor ((caller)[0], 'log_'.$category, default => sub {
goto &{$self->can ($driver->{log})};
});
# make_accessor ((caller)[0], 'log_'.$type, default => \&Class::Easy::Log::message);
}
if ($appender) {
$self->appender ($appender);
}
return $self;
}
sub appender {
lib/Class/Easy/Log.pm view on Meta::CPAN
my $caller1 = [caller (2)];
my $caller0 = [caller (1)];
unshift @_, 'default', $int_loggers->{default}, $caller1, $caller0;
goto &_wrapper;
}
sub critical {
my $sub = (caller (1))[3] || 'main';
my $line = (caller)[2];
my $logger = logger ('DIE')->_parse_layout;
die $logger->_format_log (
message => join ('', @_),
method => $sub,
line => $line
);
}
( run in 0.535 second using v1.01-cache-2.11-cpan-a3c8064c92c )