diff options
Diffstat (limited to 'rubocop')
-rw-r--r-- | rubocop/cop/gitlab/has_many_through_scope.rb | 45 | ||||
-rw-r--r-- | rubocop/rubocop.rb | 3 |
2 files changed, 1 insertions, 47 deletions
diff --git a/rubocop/cop/gitlab/has_many_through_scope.rb b/rubocop/cop/gitlab/has_many_through_scope.rb deleted file mode 100644 index 770a2a0529f..00000000000 --- a/rubocop/cop/gitlab/has_many_through_scope.rb +++ /dev/null @@ -1,45 +0,0 @@ -require 'gitlab/styles/rubocop/model_helpers' - -module RuboCop - module Cop - module Gitlab - class HasManyThroughScope < RuboCop::Cop::Cop - include ::Gitlab::Styles::Rubocop::ModelHelpers - - MSG = 'Always provide an explicit scope calling auto_include(false) when using has_many :through'.freeze - - def_node_search :through?, <<~PATTERN - (pair (sym :through) _) - PATTERN - - def_node_matcher :has_many_through?, <<~PATTERN - (send nil? :has_many ... #through?) - PATTERN - - def_node_search :disables_auto_include?, <<~PATTERN - (send _ :auto_include false) - PATTERN - - def_node_matcher :scope_disables_auto_include?, <<~PATTERN - (block (send nil? :lambda) _ #disables_auto_include?) - PATTERN - - def on_send(node) - return unless in_model?(node) - return unless has_many_through?(node) - - target = node - scope_argument = node.children[3] - - if scope_argument.children[0].children.last == :lambda - return if scope_disables_auto_include?(scope_argument) - - target = scope_argument - end - - add_offense(target, location: :expression) - end - end - end - end -end diff --git a/rubocop/rubocop.rb b/rubocop/rubocop.rb index 96061672749..f05990232ab 100644 --- a/rubocop/rubocop.rb +++ b/rubocop/rubocop.rb @@ -1,8 +1,7 @@ # rubocop:disable Naming/FileName -require_relative 'cop/gitlab/has_many_through_scope' -require_relative 'cop/gitlab/httparty' require_relative 'cop/gitlab/module_with_instance_variables' require_relative 'cop/gitlab/predicate_memoization' +require_relative 'cop/gitlab/httparty' require_relative 'cop/include_sidekiq_worker' require_relative 'cop/avoid_return_from_blocks' require_relative 'cop/avoid_break_from_strong_memoize' |