Browse Source

Also treat non-whole-word mutes as case-insensitive. #450.

closed-social-glitch-2
David Yip 6 years ago
parent
commit
5f8f481425
No known key found for this signature in database GPG Key ID: 7DA0036508FCC0CC
2 changed files with 7 additions and 1 deletions
  1. +1
    -1
      app/models/glitch/keyword_mute.rb
  2. +6
    -0
      spec/models/glitch/keyword_mute_spec.rb

+ 1
- 1
app/models/glitch/keyword_mute.rb View File

@ -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

+ 6
- 0
spec/models/glitch/keyword_mute_spec.rb View File

@ -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…
Cancel
Save