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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'rubocop/cop/put_group_routes_under_scope.rb')
-rw-r--r--rubocop/cop/put_group_routes_under_scope.rb32
1 files changed, 4 insertions, 28 deletions
diff --git a/rubocop/cop/put_group_routes_under_scope.rb b/rubocop/cop/put_group_routes_under_scope.rb
index bcdde01fdb5..9adec044da8 100644
--- a/rubocop/cop/put_group_routes_under_scope.rb
+++ b/rubocop/cop/put_group_routes_under_scope.rb
@@ -1,43 +1,19 @@
# frozen_string_literal: true
+require_relative '../routes_under_scope'
+
module RuboCop
module Cop
# Checks for a group routes outside '/-/' scope.
# For more information see: https://gitlab.com/gitlab-org/gitlab/issues/29572
class PutGroupRoutesUnderScope < RuboCop::Cop::Cop
+ include RoutesUnderScope
+
MSG = 'Put new group routes under /-/ scope'
def_node_matcher :dash_scope?, <<~PATTERN
(:send nil? :scope (hash <(pair (sym :path)(str "groups/*group_id/-")) ...>))
PATTERN
-
- def on_send(node)
- return unless in_group_routes?(node)
- return unless resource?(node)
- return unless outside_scope?(node)
-
- add_offense(node)
- end
-
- def outside_scope?(node)
- node.each_ancestor(:block).none? do |parent|
- dash_scope?(parent.to_a.first)
- end
- end
-
- def in_group_routes?(node)
- path = node.location.expression.source_buffer.name
- dirname = File.dirname(path)
- filename = File.basename(path)
-
- dirname.end_with?('config/routes') &&
- filename.end_with?('group.rb')
- end
-
- def resource?(node)
- node.method_name == :resource ||
- node.method_name == :resources
- end
end
end
end