diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2018-10-15 21:59:00 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2018-10-26 14:27:05 +0800 |
commit | 1581f75fb511fed171e8105c1a0811561a2f2dcc (patch) | |
tree | 0bf87a3d3731017554446a3b02b7ba534f4d5395 | |
parent | 679c0048a8f679aad456c02e30486150bbd0d93d (diff) | |
download | gitlab-ce-1581f75fb511fed171e8105c1a0811561a2f2dcc.tar.gz |
Put EE routes in EE files under EE directories
-rw-r--r-- | .rubocop.yml | 1 | ||||
-rw-r--r-- | config/initializers/routing_draw.rb | 8 | ||||
-rw-r--r-- | config/routes/admin.rb | 2 | ||||
-rw-r--r-- | config/routes/group.rb | 3 | ||||
-rw-r--r-- | doc/development/ee_features.md | 21 | ||||
-rw-r--r-- | lib/gitlab/patch/draw_route.rb | 21 |
6 files changed, 43 insertions, 13 deletions
diff --git a/.rubocop.yml b/.rubocop.yml index 0f4018326a1..5d2c5c7cf49 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -76,6 +76,7 @@ Naming/FileName: - 'qa/qa/specs/**/*' - 'qa/bin/*' - 'config/**/*' + - 'ee/config/**/*' - 'lib/generators/**/*' - 'locale/unfound_translations.rb' - 'ee/locale/unfound_translations.rb' diff --git a/config/initializers/routing_draw.rb b/config/initializers/routing_draw.rb index 25003cf0239..f0f74954eef 100644 --- a/config/initializers/routing_draw.rb +++ b/config/initializers/routing_draw.rb @@ -1,7 +1,3 @@ # Adds draw method into Rails routing -# It allows us to keep routing splitted into files -class ActionDispatch::Routing::Mapper - def draw(routes_name) - instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb"))) - end -end +# It allows us to keep routing split into files +ActionDispatch::Routing::Mapper.prepend Gitlab::Patch::DrawRoute diff --git a/config/routes/admin.rb b/config/routes/admin.rb index fb29c4748c1..af333bdc748 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -71,6 +71,7 @@ namespace :admin do resource :logs, only: [:show] resource :health_check, controller: 'health_check', only: [:show] resource :background_jobs, controller: 'background_jobs', only: [:show] + resource :system_info, controller: 'system_info', only: [:show] resources :requests_profiles, only: [:index, :show], param: :name, constraints: { name: /.+\.html/ } @@ -104,6 +105,7 @@ namespace :admin do resource :application_settings, only: [:show, :update] do resources :services, only: [:index, :edit, :update] + get :usage_data put :reset_registration_token put :reset_health_check_token diff --git a/config/routes/group.rb b/config/routes/group.rb index 602bbe837cf..2328b50b760 100644 --- a/config/routes/group.rb +++ b/config/routes/group.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + resources :groups, only: [:index, :new, :create] do post :preview_markdown end @@ -63,7 +65,6 @@ constraints(::Constraints::GroupUrlConstrainer.new) do end end - # On CE only index and show actions are needed resources :boards, only: [:index, :show] resources :runners, only: [:index, :edit, :update, :destroy, :show] do diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md index f9e6efa2c30..2415373f2d1 100644 --- a/doc/development/ee_features.md +++ b/doc/development/ee_features.md @@ -171,7 +171,7 @@ There are a few gotchas with it: class Base def execute return unless enabled? - + # ... # ... end @@ -185,12 +185,12 @@ There are a few gotchas with it: class Base def execute return unless enabled? - + do_something end - + private - + def do_something # ... # ... @@ -204,14 +204,14 @@ There are a few gotchas with it: ```ruby module EE::Base extend ::Gitlab::Utils::Override - + override :do_something def do_something # Follow the above pattern to call super and extend it end end ``` - + This would require updating CE first, or make sure this is back ported to CE. When prepending, place them in the `ee/` specific sub-directory, and @@ -332,6 +332,15 @@ full implementation details. [ce-mr-full-private]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12373 [ee-mr-full-private]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2199 +### Code in `config/routes` + +When we add `draw :admin` in `config/routes.rb`, the application will also +load the file located in `config/routes/admin.rb`, and also +`ee/config/routes/admin.rb` if the file exists. + +So if we want to extend a particular route file, just add the same file +located in `ee/config/routes`. + ### Code in `app/controllers/` In controllers, the most common type of conflict is with `before_action` that diff --git a/lib/gitlab/patch/draw_route.rb b/lib/gitlab/patch/draw_route.rb new file mode 100644 index 00000000000..4396e811a8c --- /dev/null +++ b/lib/gitlab/patch/draw_route.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# We're patching `ActionDispatch::Routing::Mapper` in +# config/initializers/routing_draw.rb +module Gitlab + module Patch + module DrawRoute + def draw(routes_name) + instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb"))) + + draw_ee(routes_name) + end + + def draw_ee(routes_name) + path = Rails.root.join("ee/config/routes/#{routes_name}.rb") + + instance_eval(File.read(path)) if File.exist?(path) + end + end + end +end |