diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-14 15:09:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-14 15:09:57 +0000 |
commit | b689f371350fbf1b71f266764ee018befc9b91f7 (patch) | |
tree | 7de1d3ab26d3cae0ac2a7a8ccd8302fcdaac5534 /rubocop | |
parent | 0b194c4854f312e36616fccf7c610cb2b0ec6957 (diff) | |
download | gitlab-ce-b689f371350fbf1b71f266764ee018befc9b91f7.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'rubocop')
-rw-r--r-- | rubocop/cop/database/multiple_databases.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/rubocop/cop/database/multiple_databases.rb b/rubocop/cop/database/multiple_databases.rb new file mode 100644 index 00000000000..fb6e81f9845 --- /dev/null +++ b/rubocop/cop/database/multiple_databases.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module RuboCop + module Cop + module Database + # @example + # # bad + # ActiveRecord::Base.connection + # + # # good + # ApplicationRecord.connection + # + class MultipleDatabases < RuboCop::Cop::Cop + AR_BASE_MESSAGE = <<~EOF + Do not use methods from ActiveRecord::Base, use the ApplicationRecord class instead + For fixing offenses related to the ActiveRecord::Base.transaction method, see our guidelines: + https://docs.gitlab.com/ee/development/database/transaction_guidelines.html + EOF + + def_node_matcher :active_record_base_method_is_used?, <<~PATTERN + (send (const (const nil? :ActiveRecord) :Base) $_) + PATTERN + + def on_send(node) + return unless active_record_base_method_is_used?(node) + + add_offense(node, location: :expression, message: AR_BASE_MESSAGE) + end + end + end + end +end |