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/database/multiple_databases.rb')
-rw-r--r--rubocop/cop/database/multiple_databases.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/rubocop/cop/database/multiple_databases.rb b/rubocop/cop/database/multiple_databases.rb
index fb6e81f9845..f20348d9d1f 100644
--- a/rubocop/cop/database/multiple_databases.rb
+++ b/rubocop/cop/database/multiple_databases.rb
@@ -17,6 +17,10 @@ module RuboCop
https://docs.gitlab.com/ee/development/database/transaction_guidelines.html
EOF
+ ALLOWED_METHODS = %i[
+ no_touching
+ ].freeze
+
def_node_matcher :active_record_base_method_is_used?, <<~PATTERN
(send (const (const nil? :ActiveRecord) :Base) $_)
PATTERN
@@ -24,8 +28,17 @@ module RuboCop
def on_send(node)
return unless active_record_base_method_is_used?(node)
+ active_record_base_method = node.children[1]
+ return if method_is_allowed?(active_record_base_method)
+
add_offense(node, location: :expression, message: AR_BASE_MESSAGE)
end
+
+ private
+
+ def method_is_allowed?(method_name)
+ ALLOWED_METHODS.include?(method_name.to_sym)
+ end
end
end
end