mirror of
https://github.com/discourse/discourse.git
synced 2025-03-01 00:39:17 +00:00
FIX: remove memoization on class method used in a job
This commit is contained in:
parent
4e8beda332
commit
9dddb81cf6
@ -461,17 +461,16 @@ module Email
|
||||
true
|
||||
end
|
||||
|
||||
def self.reply_by_email_address_regex
|
||||
@reply_by_email_address_regex ||= begin
|
||||
reply_addresses = [
|
||||
SiteSetting.reply_by_email_address,
|
||||
*(SiteSetting.alternative_reply_by_email_addresses.presence || "").split("|")
|
||||
]
|
||||
escaped_reply_addresses = reply_addresses.select(&:present?)
|
||||
.map { |a| Regexp.escape(a) }
|
||||
.map { |a| a.gsub(Regexp.escape("%{reply_key}"), "(\\h{32})") }
|
||||
Regexp.new(escaped_reply_addresses.join("|"))
|
||||
end
|
||||
def self.reply_by_email_address_regex(extract_reply_key=true)
|
||||
reply_addresses = [SiteSetting.reply_by_email_address]
|
||||
reply_addresses << (SiteSetting.alternative_reply_by_email_addresses.presence || "").split("|")
|
||||
|
||||
reply_addresses.flatten!
|
||||
reply_addresses.select!(&:present?)
|
||||
reply_addresses.map! { |a| Regexp.escape(a) }
|
||||
reply_addresses.map! { |a| a.gsub(Regexp.escape("%{reply_key}"), "(\\h{32})") }
|
||||
|
||||
/#{reply_addresses.join("|")}/
|
||||
end
|
||||
|
||||
def group_incoming_emails_regex
|
||||
@ -529,9 +528,7 @@ module Email
|
||||
end
|
||||
|
||||
def post_action_for(body)
|
||||
if likes.include?(body.strip.downcase)
|
||||
PostActionType.types[:like]
|
||||
end
|
||||
PostActionType.types[:like] if likes.include?(body.strip.downcase)
|
||||
end
|
||||
|
||||
def create_topic(options={})
|
||||
|
@ -526,4 +526,33 @@ describe Email::Receiver do
|
||||
|
||||
end
|
||||
|
||||
context "#reply_by_email_address_regex" do
|
||||
|
||||
before do
|
||||
SiteSetting.reply_by_email_address = nil
|
||||
SiteSetting.alternative_reply_by_email_addresses = nil
|
||||
end
|
||||
|
||||
it "is empty by default" do
|
||||
expect(Email::Receiver.reply_by_email_address_regex).to eq(//)
|
||||
end
|
||||
|
||||
it "uses 'reply_by_email_address' site setting" do
|
||||
SiteSetting.reply_by_email_address = "foo+%{reply_key}@bar.com"
|
||||
expect(Email::Receiver.reply_by_email_address_regex).to eq(/foo\+(\h{32})@bar\.com/)
|
||||
end
|
||||
|
||||
it "uses 'alternative_reply_by_email_addresses' site setting" do
|
||||
SiteSetting.alternative_reply_by_email_addresses = "alt.foo+%{reply_key}@bar.com"
|
||||
expect(Email::Receiver.reply_by_email_address_regex).to eq(/alt\.foo\+(\h{32})@bar\.com/)
|
||||
end
|
||||
|
||||
it "combines both 'reply_by_email' settings" do
|
||||
SiteSetting.reply_by_email_address = "foo+%{reply_key}@bar.com"
|
||||
SiteSetting.alternative_reply_by_email_addresses = "alt.foo+%{reply_key}@bar.com"
|
||||
expect(Email::Receiver.reply_by_email_address_regex).to eq(/foo\+(\h{32})@bar\.com|alt\.foo\+(\h{32})@bar\.com/)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user