summaryrefslogtreecommitdiff
path: root/lib/gitlab/patch/global_id.rb
blob: 145a7bfe842d8fe3c613b10ea7eaeec3714830a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# frozen_string_literal: true

# To support GlobalID arguments that present a model with its old "deprecated" name
# we alter GlobalID so it will correctly find the record with its new model name.
module Gitlab
  module Patch
    module GlobalId
      def initialize(gid, options = {})
        super

        if deprecation = Gitlab::GlobalId::Deprecations.deprecation_for(model_name)
          @new_model_name = deprecation.new_model_name
        end
      end

      def model_name
        new_model_name || super
      end

      private

      attr_reader :new_model_name
    end
  end
end