From 74616ece287a9121d6aec69f4db75bb9c4c307ce Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Thu, 23 Aug 2018 10:04:41 +0100 Subject: [PATCH] Extract EE-specific lines from Gitlab::Email::Handler --- lib/gitlab/email/handler.rb | 20 +++++++++++++------- spec/lib/gitlab/email/handler_spec.rb | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/gitlab/email/handler.rb b/lib/gitlab/email/handler.rb index e08b5be8984..bbab6f32e9b 100644 --- a/lib/gitlab/email/handler.rb +++ b/lib/gitlab/email/handler.rb @@ -6,15 +6,21 @@ require 'gitlab/email/handler/unsubscribe_handler' module Gitlab module Email module Handler - HANDLERS = [ - UnsubscribeHandler, - CreateNoteHandler, - CreateMergeRequestHandler, - CreateIssueHandler - ].freeze + def self.handlers + @handlers ||= load_handlers + end + + def self.load_handlers + [ + UnsubscribeHandler, + CreateNoteHandler, + CreateMergeRequestHandler, + CreateIssueHandler + ] + end def self.for(mail, mail_key) - HANDLERS.find do |klass| + handlers.find do |klass| handler = klass.new(mail, mail_key) break handler if handler.can_handle? end diff --git a/spec/lib/gitlab/email/handler_spec.rb b/spec/lib/gitlab/email/handler_spec.rb index cedbfcc0d18..01cbb01e514 100644 --- a/spec/lib/gitlab/email/handler_spec.rb +++ b/spec/lib/gitlab/email/handler_spec.rb @@ -40,7 +40,7 @@ describe Gitlab::Email::Handler do end def ce_handlers - @ce_handlers ||= Gitlab::Email::Handler::HANDLERS.reject do |handler| + @ce_handlers ||= Gitlab::Email::Handler.handlers.reject do |handler| handler.name.start_with?('Gitlab::Email::Handler::EE::') end end