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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-28 06:09:53 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-28 06:09:53 +0300
commit2e4d8b3449e8c2c750a816b9566c61a0a96b934b (patch)
tree831b4d55a3b283e519a4c911e444564d4c7c3344 /rubocop
parent56df7f06f1e57d66efcff5d8ad0026252cc91192 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'rubocop')
-rw-r--r--rubocop/cop/api/grape_api_instance.rb42
-rw-r--r--rubocop/cop/api/grape_array_missing_coerce.rb83
2 files changed, 0 insertions, 125 deletions
diff --git a/rubocop/cop/api/grape_api_instance.rb b/rubocop/cop/api/grape_api_instance.rb
deleted file mode 100644
index de11b9ef3f6..00000000000
--- a/rubocop/cop/api/grape_api_instance.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-# frozen_string_literal: true
-
-module RuboCop
- module Cop
- module API
- class GrapeAPIInstance < RuboCop::Cop::Cop
- # This cop checks that APIs subclass Grape::API::Instance with Grape v1.3+.
- #
- # @example
- #
- # # bad
- # module API
- # class Projects < Grape::API
- # end
- # end
- #
- # # good
- # module API
- # class Projects < Grape::API::Instance
- # end
- # end
- MSG = 'Inherit from Grape::API::Instance instead of Grape::API. ' \
- 'For more details check the https://gitlab.com/gitlab-org/gitlab/-/issues/215230.'
-
- def_node_matcher :grape_api_definition, <<~PATTERN
- (class
- (const _ _)
- (const
- (const nil? :Grape) :API)
- ...
- )
- PATTERN
-
- def on_class(node)
- grape_api_definition(node) do
- add_offense(node.children[1])
- end
- end
- end
- end
- end
-end
diff --git a/rubocop/cop/api/grape_array_missing_coerce.rb b/rubocop/cop/api/grape_array_missing_coerce.rb
deleted file mode 100644
index 3d7a6a72d81..00000000000
--- a/rubocop/cop/api/grape_array_missing_coerce.rb
+++ /dev/null
@@ -1,83 +0,0 @@
-# frozen_string_literal: true
-
-module RuboCop
- module Cop
- module API
- class GrapeArrayMissingCoerce < RuboCop::Cop::Cop
- # This cop checks that Grape API parameters using an Array type
- # implement a coerce_with method:
- #
- # https://github.com/ruby-grape/grape/blob/master/UPGRADING.md#ensure-that-array-types-have-explicit-coercions
- #
- # @example
- #
- # # bad
- # requires :values, type: Array[String]
- #
- # # good
- # requires :values, type: Array[String], coerce_with: Validations::Types::CommaSeparatedToArray.coerce
- #
- # end
- MSG = 'This Grape parameter defines an Array but is missing a coerce_with definition. ' \
- 'For more details, see https://github.com/ruby-grape/grape/blob/master/UPGRADING.md#ensure-that-array-types-have-explicit-coercions'
-
- def_node_matcher :grape_api_instance?, <<~PATTERN
- (class
- (const _ _)
- (const
- (const
- (const nil? :Grape) :API) :Instance)
- ...
- )
- PATTERN
-
- def_node_matcher :grape_api_param_block?, <<~PATTERN
- (send _ {:requires :optional}
- (sym _)
- $_)
- PATTERN
-
- def_node_matcher :grape_type_def?, <<~PATTERN
- (sym :type)
- PATTERN
-
- def_node_matcher :grape_array_type?, <<~PATTERN
- (send
- (const nil? :Array) :[]
- (const nil? _))
- PATTERN
-
- def_node_matcher :grape_coerce_with?, <<~PATTERN
- (sym :coerce_with)
- PATTERN
-
- def on_class(node)
- @grape_api ||= grape_api_instance?(node)
- end
-
- def on_send(node)
- return unless @grape_api
-
- match = grape_api_param_block?(node)
-
- return unless match.is_a?(RuboCop::AST::HashNode)
-
- is_array_type = false
- has_coerce_method = false
-
- match.each_pair do |first, second|
- has_coerce_method ||= grape_coerce_with?(first)
-
- if grape_type_def?(first) && grape_array_type?(second)
- is_array_type = true
- end
- end
-
- if is_array_type && !has_coerce_method
- add_offense(node)
- end
- end
- end
- end
- end
-end