App-Alice
view release on metacpan or search on metacpan
lib/App/Alice/Logger.pm view on Meta::CPAN
package App::Alice::Logger;
use Any::Moose;
has callbacks => (
is => 'ro',
isa => 'HashRef',
default => sub {
my $hashref = {map {uc $_ => [\&print_line]}
qw/debug info warn error fatal/};
}
);
sub add_cb {
my ($self, $level, $cb) = @_;
return unless $self->callbacks->{$level};
push @{$self->callbacks->{$level}}, $cb;
}
sub log {
my ($self, $level, $message) = @_;
$level = uc $level;
return unless @{$self->callbacks->{$level}};
$_->($level, $message) for @{$self->callbacks->{$level}};
}
sub print_line {
my ($level, $message) = @_;
my ($sec, $min, $hour, $day, $mon, $year) = localtime(time);
my $datestring = sprintf "%02d:%02d:%02d %02d/%02d/%02d",
$hour, $min, $sec, $mon, $day, $year % 100;
print STDERR substr($level, 0, 1) . ", [$datestring] "
. sprintf("% 5s", $level) . " -- : $message\n";
}
lib/App/Alice/Test/MockIRC.pm view on Meta::CPAN
my $self = shift;
$self->cbs->{registered}->();
}
sub disconnect {
my $self = shift;
$self->cbs->{disconnect}->();
}
sub enable_ping {}
sub reg_cb {
my ($self, %callbacks) = @_;
for (keys %callbacks) {
$self->cbs->{$_} = $callbacks{$_};
}
}
__PACKAGE__->meta->make_immutable;
1;
( run in 0.418 second using v1.01-cache-2.11-cpan-501359838a1 )