Commit f1701c0f authored by Lin Jen-Shin's avatar Lin Jen-Shin

Make it possible to add EE only route

And if it cannot find any routes, raise an error
parent 1581f75f
...@@ -334,12 +334,17 @@ full implementation details. ...@@ -334,12 +334,17 @@ full implementation details.
### Code in `config/routes` ### Code in `config/routes`
When we add `draw :admin` in `config/routes.rb`, the application will also When we add `draw :admin` in `config/routes.rb`, the application will try to
load the file located in `config/routes/admin.rb`, and also load the file located in `config/routes/admin.rb`, and also try to load the
`ee/config/routes/admin.rb` if the file exists. file located in `ee/config/routes/admin.rb`.
So if we want to extend a particular route file, just add the same file It should at least load one file, at most two files. If it cannot find any
located in `ee/config/routes`. files, an error will be raised.
This means if we want to extend a particular CE route file, just add the same
file located in `ee/config/routes`. If we want to add an EE only route, we
could still use `draw :ee_only` and add `ee/config/routes/ee_only.rb` without
adding `config/routes/ee_only.rb`.
### Code in `app/controllers/` ### Code in `app/controllers/`
......
...@@ -5,16 +5,28 @@ ...@@ -5,16 +5,28 @@
module Gitlab module Gitlab
module Patch module Patch
module DrawRoute module DrawRoute
RoutesNotFound = Class.new(StandardError)
def draw(routes_name) def draw(routes_name)
instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb"))) draw_ce(routes_name) | draw_ee(routes_name) ||
raise(RoutesNotFound.new("Cannot find #{routes_name}"))
end
draw_ee(routes_name) def draw_ce(routes_name)
draw_route(Rails.root.join("config/routes/#{routes_name}.rb"))
end end
def draw_ee(routes_name) def draw_ee(routes_name)
path = Rails.root.join("ee/config/routes/#{routes_name}.rb") draw_route(Rails.root.join("ee/config/routes/#{routes_name}.rb"))
end
instance_eval(File.read(path)) if File.exist?(path) def draw_route(path)
if File.exist?(path)
instance_eval(File.read(path))
true
else
false
end
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment