Welcome to mirror list, hosted at ThFree Co, Russian Federation.

draw_route.rb « patch « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 67da6c9c943090652e812a02a6ea4e43f9576fe8 (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
34
35
36
37
38
39
40
# 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)
        drawn_any = draw_ee(routes_name) | draw_ce(routes_name)

        drawn_any || raise(RoutesNotFound, "Cannot find #{routes_name}")
      end

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

      def draw_ee(_)
        true
      end

      def route_path(routes_name)
        Rails.root.join(routes_name)
      end

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

Gitlab::Patch::DrawRoute.prepend_mod_with('Gitlab::Patch::DrawRoute')