File Coverage

blib/lib/POE/Component/IRC/Plugin/Hello.pm
Criterion Covered Total %
statement 30 34 88.2
branch 2 2 100.0
condition n/a
subroutine 9 11 81.8
pod 0 4 0.0
total 41 51 80.3


line stmt bran cond sub pod time code
1             package POE::Component::IRC::Plugin::Hello;
2              
3 1     1   193123 use 5.014000;
  1         4  
  1         36  
4 1     1   6 use strict;
  1         2  
  1         29  
5 1     1   5 use warnings;
  1         7  
  1         69  
6             our $VERSION = '0.001002';
7              
8 1     1   16 use List::Util qw/first/;
  1         8  
  1         147  
9              
10 1     1   1187 use IRC::Utils qw/parse_user/;
  1         424185  
  1         137  
11 1     1   1942 use POE::Component::IRC::Plugin qw/PCI_EAT_NONE/;
  1         492  
  1         368  
12              
13             sub new {
14 2     2 0 615 my $class = shift;
15 2         32 my $self = {
16             greetings => [qw/privet hello salut salutari neata neaţa hola hey hi bonjour wassup sup hallo chikmaa tungjatjeta parev salam namaskaar mingalarba ahoy saluton allo moin aloha namaste shalom ciào ciao servus salve ave merhaba witaj hei hola selam sawubona/, "what's up", 'que tal', 'こんにちは', '你好', 'ni hao'],
17             @_
18             };
19              
20 2         13 bless $self, $class
21             }
22              
23             sub PCI_register {
24 0     0 0 0 my ($self, $irc) = @_;
25 0         0 $irc->plugin_register($self, SERVER => qw/public/);
26 0         0 1
27             }
28              
29 0     0 0 0 sub PCI_unregister { 1 }
30              
31             sub S_public{
32 17     17 0 6450 my ($self, $irc, $rfullname, $rchannels, $rmessage) = @_;
33 17         51 my $nick = parse_user $$rfullname;
34 17         254 my $mynick = $irc->nick_name;
35 17         984 my @hello = @{$self->{greetings}};
  17         103  
36              
37 17     268   95 my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*[.!]?\s*$/i } @hello;
  268         7263  
38 17 100       208 $irc->yield(privmsg => $$rchannels->[0] => $hello[int rand $#hello].", $nick") if $match;
39 17         754 PCI_EAT_NONE
40             }
41              
42             1;
43             __END__