App-Alice

 view release on metacpan or  search on metacpan

lib/App/Alice/Logger.pm  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
 
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

91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
  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.245 second using v1.01-cache-2.11-cpan-4e96b696675 )