Maintain case-insensitivity when merging multiple matchers (#213)
When given two regexps, Regexp.union preserves the options set (or not set) on each regex; this meant that none of the multiline (m), case-insensitivity (i), or extended syntax (x) options were set. Our regexps are written expecting the m, i, and x options were set on all of them, so we need to make sure that we preserve that behavior.
This commit is contained in:
@ -35,7 +35,7 @@ class Glitch::KeywordMute < ApplicationRecord
|
||||
def initialize(account_id)
|
||||
@account_id = account_id
|
||||
regex_text = Rails.cache.fetch("keyword_mutes:regex:#{account_id}") { regex_text_for_account }
|
||||
@regex = /#{regex_text}/i
|
||||
@regex = /#{regex_text}/
|
||||
end
|
||||
|
||||
def =~(str)
|
||||
@ -60,7 +60,7 @@ class Glitch::KeywordMute < ApplicationRecord
|
||||
sb = keyword =~ /\A[[:word:]]/ ? '\b' : ''
|
||||
eb = keyword =~ /[[:word:]]\Z/ ? '\b' : ''
|
||||
|
||||
/#{sb}#{Regexp.escape(keyword)}#{eb}/
|
||||
/(?mix:#{sb}#{Regexp.escape(keyword)}#{eb})/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user