From b64441d4730daae33f3cdd3c1881968b739d6863 Mon Sep 17 00:00:00 2001 From: rht <rudyht@gmail.com> Date: Wed, 3 Dec 2014 11:36:10 +0800 Subject: [PATCH 1/2] Fix parsing the `@` prefix for botname mention ``` >> def strip_name(text, nick=nil) text.gsub(/\A(#{nick}:|@#{nick}) /, '') end ``` Test cases: ``` >> strip_name("pagerbot: make me a sandwich", "pagerbot") => "make me a sandwich" >> strip_name("@pagerbot make me a sandwich", "pagerbot") => "make me a sandwich" >> strip_name("pagerbot make me a sandwich", "pagerbot") => "pagerbot make me a sandwich" ``` --- lib/pagerbot/parsing.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pagerbot/parsing.rb b/lib/pagerbot/parsing.rb index 8820652..77a9e58 100644 --- a/lib/pagerbot/parsing.rb +++ b/lib/pagerbot/parsing.rb @@ -1,6 +1,6 @@ module PagerBot::Parsing def self.strip_name(text, nick=nil) - text.gsub(/\A@?#{nick}: /, '') + text.gsub(/\A(@?#{nick}:|@#{nick}) /, '') end def self.split_text(text) -- GitLab From 79bac692ab2c575174891870a5ac7d755af620c4 Mon Sep 17 00:00:00 2001 From: rht <rudyht@gmail.com> Date: Wed, 3 Dec 2014 12:05:27 +0800 Subject: [PATCH 2/2] Add unittest to pagerbot name parsing --- test/unit/pagerbot/parsing.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/unit/pagerbot/parsing.rb b/test/unit/pagerbot/parsing.rb index ffa3a76..f957724 100644 --- a/test/unit/pagerbot/parsing.rb +++ b/test/unit/pagerbot/parsing.rb @@ -53,4 +53,33 @@ class Parsing < Critic::Test end end end + + def strip_name(text, botname="test-pagerbot") + PagerBot::Parsing.strip_name(text, botname) + end + + describe 'Parsing botname' do + #Three types of syntax are currently supported: + it "test-pagerbot:" do + assert_equal('make me a sandwich', + strip_name('test-pagerbot: make me a sandwich')) + end + + it "@test-pagerbot:" do + assert_equal('make me a sandwich', + strip_name('@test-pagerbot: make me a sandwich')) + end + + it "@test-pagerbot" do + assert_equal('make me a sandwich', + strip_name('@test-pagerbot make me a sandwich')) + end + + #The botname shouldn't be stripped out when there is neither a + #colon suffix or an '@' prefix + it "test-pagerbot" do + assert_equal('test-pagerbot make me a sandwich', + strip_name('test-pagerbot make me a sandwich')) + end + end end -- GitLab