forked from treehouse/mastodon
Also treat non-whole-word mutes as case-insensitive. #450.
parent
64be38da0c
commit
5f8f481425
|
@ -70,7 +70,7 @@ class Glitch::KeywordMute < ApplicationRecord
|
||||||
|
|
||||||
def make_regex_text
|
def make_regex_text
|
||||||
kws = keywords.map! do |whole_word, keyword|
|
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
|
end
|
||||||
|
|
||||||
Regexp.union(kws).source
|
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
|
expect(matcher.matches?('This is a HOT take')).to be_truthy
|
||||||
end
|
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
|
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: 'hot')
|
||||||
Glitch::KeywordMute.create!(account: alice, keyword: 'cold')
|
Glitch::KeywordMute.create!(account: alice, keyword: 'cold')
|
||||||
|
|
Loading…
Reference in New Issue