diff options
author | David Yip <yipdw@member.fsf.org> | 2018-04-30 22:38:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-30 22:38:10 -0500 |
commit | 3a47842223ff93d8c057f804809f1b111dfd6f76 (patch) | |
tree | c7ea96668e18f2d07b280d27b2b409f9c8e3b762 | |
parent | 64be38da0c52b9a55f077e7eb226e22031eda5a3 (diff) | |
parent | 5f8f48142559f07cd71409329a795e81d3c48339 (diff) |
Merge pull request #451 from glitch-soc/450-make-non-whole-word-mutes-case-insensitive
Also treat non-whole-word mutes as case-insensitive (#450)
-rw-r--r-- | app/models/glitch/keyword_mute.rb | 2 | ||||
-rw-r--r-- | spec/models/glitch/keyword_mute_spec.rb | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/app/models/glitch/keyword_mute.rb b/app/models/glitch/keyword_mute.rb index a2481308f..f9c380f39 100644 --- a/app/models/glitch/keyword_mute.rb +++ b/app/models/glitch/keyword_mute.rb @@ -70,7 +70,7 @@ class Glitch::KeywordMute < ApplicationRecord def make_regex_text kws = keywords.map! do |whole_word, keyword| - whole_word ? boundary_regex_for_keyword(keyword) : keyword + whole_word ? boundary_regex_for_keyword(keyword) : /(?i:#{keyword})/ end Regexp.union(kws).source diff --git a/spec/models/glitch/keyword_mute_spec.rb b/spec/models/glitch/keyword_mute_spec.rb index 0ffc7b18f..79225e3b9 100644 --- a/spec/models/glitch/keyword_mute_spec.rb +++ b/spec/models/glitch/keyword_mute_spec.rb @@ -60,6 +60,12 @@ RSpec.describe Glitch::KeywordMute, type: :model do expect(matcher.matches?('This is a HOT take')).to be_truthy end + it 'matches if at least one non-whole-word keyword case-insensitively matches the text' do + Glitch::KeywordMute.create!(account: alice, keyword: 'hot', whole_word: false) + + expect(matcher.matches?('This is a HOTTY take')).to be_truthy + end + it 'maintains case-insensitivity when combining keywords into a single matcher' do Glitch::KeywordMute.create!(account: alice, keyword: 'hot') Glitch::KeywordMute.create!(account: alice, keyword: 'cold') |