summaryrefslogtreecommitdiff
path: root/lib/gitlab/patch/draw_route.rb
blob: f8ae6f7afc0706d2dc6e7234b45635cfa0a05c14 (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
26
27
28
29
30
31
32
33
# frozen_string_literal: true

# We're patching `ActionDispatch::Routing::Mapper` in
# config/initializers/routing_draw.rb
module Gitlab
  module Patch
    module DrawRoute
      RoutesNotFound = Class.new(StandardError)

      def draw(routes_name)
        draw_ce(routes_name) | draw_ee(routes_name) ||
          raise(RoutesNotFound.new("Cannot find #{routes_name}"))
      end

      def draw_ce(routes_name)
        draw_route(Rails.root.join("config/routes/#{routes_name}.rb"))
      end

      def draw_ee(routes_name)
        draw_route(Rails.root.join("ee/config/routes/#{routes_name}.rb"))
      end

      def draw_route(path)
        if File.exist?(path)
          instance_eval(File.read(path))
          true
        else
          false
        end
      end
    end
  end
end