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)main
commit
3a47842223
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue