summaryrefslogtreecommitdiff
path: root/lib/gitlab/email/message/in_product_marketing.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/email/message/in_product_marketing.rb')
-rw-r--r--lib/gitlab/email/message/in_product_marketing.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/gitlab/email/message/in_product_marketing.rb b/lib/gitlab/email/message/in_product_marketing.rb
new file mode 100644
index 00000000000..d538238f26f
--- /dev/null
+++ b/lib/gitlab/email/message/in_product_marketing.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Email
+ module Message
+ module InProductMarketing
+ UnknownTrackError = Class.new(StandardError)
+
+ TRACKS = [:create, :verify, :team, :trial].freeze
+
+ def self.for(track)
+ raise UnknownTrackError unless TRACKS.include?(track)
+
+ "Gitlab::Email::Message::InProductMarketing::#{track.to_s.classify}".constantize
+ end
+ end
+ end
+ end
+end