Allow ! or . after a greeting
authorMarius Gavrilescu <marius@ieval.ro>
Sat, 7 Jun 2014 20:27:17 +0000 (23:27 +0300)
committerMarius Gavrilescu <marius@ieval.ro>
Sat, 7 Jun 2014 20:27:17 +0000 (23:27 +0300)
lib/POE/Component/IRC/Plugin/Hello.pm
t/POE-Component-IRC-Plugin-Hello.t

index a5770aa0350d03020f2ef22cc2871cde4ae3be60..f6bc02bfda1d7f9e1e98d305693538c610df2564 100644 (file)
@@ -34,7 +34,7 @@ sub S_public{
        my $mynick = $irc->nick_name;
        my @hello = @{$self->{greetings}};
 
-       my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*$/i } @hello;
+       my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*[.!]?\s*$/i } @hello;
        $irc->yield(privmsg => $$rchannels->[0] => $hello[int rand $#hello].", $nick") if $match;
        PCI_EAT_NONE
 }
index 7eae8c836340f10db51c75184d4581d9a1134ff2..526f0bf27cd4b363ba339759b4c5a3bf2b6d4fb2 100644 (file)
@@ -3,7 +3,7 @@ use v5.14;
 use strict;
 use warnings;
 
-use Test::More tests => 15;
+use Test::More tests => 18;
 use Test::MockObject;
 
 BEGIN { use_ok('POE::Component::IRC::Plugin::Hello') };
@@ -28,6 +28,8 @@ runtest 'PrIvEt', 1, 'privet in mixed case';
 runtest '  privet  ', 1, 'privet with spaces';
 runtest 'hellobot: privet', 1, 'addressed privet';
 runtest 'hellobot:    privet   ', 1, 'addressed privet with spaces';
+runtest 'privet!', 1, 'privet with exclamation mark';
+runtest 'privet.', 1, 'privet with full stop';
 runtest 'ahoy', 1, 'ahoy';
 runtest 'namaste', 1, 'namaste';
 runtest 'neaţa', 1, 'neaţa (UTF-8 test)';
@@ -36,8 +38,8 @@ runtest 'こんにちは', 1, 'こんにちは (another UTF-8 test)';
 runtest 'salu', 0, 'salu (misspelling)';
 runtest 'hii', 0, 'hii (misspelling)';
 runtest 'neaţa mgv', 0, 'neaţa mgv (valid greeting with garbage after it)';
+runtest 'hi,', 0, 'hi, (bad punctuation)';
 
 $self = POE::Component::IRC::Plugin::Hello->new(greetings => ['sayonara']);
-
 runtest 'privet', 0, 'custom greetings - privet';
 runtest '  sayonara   ', 1, 'custom greetings - sayonara';
This page took 0.0109 seconds and 4 git commands to generate.