Convert Routing helpers to Rails' `direct` DSL
Problem
GitLab defines "routing helpers" which are included via GitlabRoutingHelper
. These routing helpers can be converted into Rails' direct
DSL.
Before
app/helpers/timeboxes_routing_helper.rb
module TimeboxesRoutingHelper
def milestone_path(milestone, *args)
if milestone.group_milestone?
group_milestone_path(milestone.group, milestone, *args)
elsif milestone.project_milestone?
project_milestone_path(milestone.project, milestone, *args)
end
end
def milestone_url(milestone, *args)
if milestone.group_milestone?
group_milestone_url(milestone.group, milestone, *args)
elsif milestone.project_milestone?
project_milestone_url(milestone.project, milestone, *args)
end
end
end
After
config/routes/directs/milestone.rb
direct(:milestone) do |milestone, *args|
if milestone.group_milestone?
[milestone.group, milestone, *args]
elsif milestone.project_milestone?
[milestone.project, milestone, *args]
end
end
config/routes.rb
draw 'directs/milestone.rb'
Proposed solution
- Convert all routing helpers into
direct
operations- Define
direct
s inconfig/routes/directs/*.rb
oree/config/routes/directs/*.rb
- Add
draw 'directs/<new scope>'
inconfig/routes/directs.rb
oree/config/routes/directs.rb
- Define
- Convert all routing specs into path specs
List
-
app/helpers/timeboxes_routing_helper.rb
- !111468 (merged) -
ee/app/helpers/ee/timeboxes_routing_helper.rb
- !111468 (merged) -
app/helpers/routing/snippets_helper.rb
-
app/helpers/routing/graphql_helper.rb
-
app/helpers/routing/pipeline_schedules_helper.rb
-
app/helpers/routing/projects_helper.rb
-
app/helpers/routing/pseudonymization_helper.rb
-
app/helpers/routing/projects/members_helper.rb
-
app/helpers/routing/wiki_helper.rb
-
app/helpers/routing/members_helper.rb
-
app/helpers/routing/packages_helper.rb
-
app/helpers/routing/artifacts_helper.rb
-
app/helpers/routing/groups/members_helper.rb
-
ee/app/helpers/ee/routing/projects_helper.rb
Edited by Peter Leitzen