diff --git a/lib/gitlab/email/handler/base_handler.rb b/lib/gitlab/email/handler/base_handler.rb index 35bb49ad19a..3f34a7e1d38 100644 --- a/lib/gitlab/email/handler/base_handler.rb +++ b/lib/gitlab/email/handler/base_handler.rb @@ -11,7 +11,7 @@ module Gitlab @mail_key = mail_key end - def can_execute? + def can_handle? raise NotImplementedError end diff --git a/lib/gitlab/email/handler/unsubscribe_handler.rb b/lib/gitlab/email/handler/unsubscribe_handler.rb index 0155d7bd113..7589658d2fe 100644 --- a/lib/gitlab/email/handler/unsubscribe_handler.rb +++ b/lib/gitlab/email/handler/unsubscribe_handler.rb @@ -11,8 +11,9 @@ module Gitlab class UnsubscribeHandler < BaseHandler delegate :project, to: :sent_notification, allow_nil: true - HANDLER_REGEX = /\A(?\w+)#{Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX}\z/.freeze - HANDLER_REGEX_LEGACY = /\A(?\w+)#{Regexp.escape(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX_LEGACY)}\z/.freeze + HANDLER_REGEX_FOR = -> (suffix) { /\A(?\w+)#{Regexp.escape(suffix)}\z/ }.freeze + HANDLER_REGEX = HANDLER_REGEX_FOR.call(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX).freeze + HANDLER_REGEX_LEGACY = HANDLER_REGEX_FOR.call(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX_LEGACY).freeze def initialize(mail, mail_key) super(mail, mail_key) @@ -37,8 +38,10 @@ module Gitlab private + attr_reader :reply_token + def sent_notification - @sent_notification ||= SentNotification.for(@reply_token) + @sent_notification ||= SentNotification.for(reply_token) end end end