Class: RuboCop::Cop::Rails::UnscopedOverNonModelConstant
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::UnscopedOverNonModelConstant
- Defined in:
- lib/rubocop/cop/rails/unscoped_over_non_model_constant.rb
Overview
Identifies calls to unscoped over non model constants. This can be an issue because
unscoped removes all scopes defined before. Calling it directly to the model, it
can be considered as safe because only default_scope will be removed, which is the
main reason to use unscoped statement.
Constant Summary collapse
- MSG =
'Prevent usage of `unscoped` over non model constants.'- RESTRICT_ON_SEND =
i[unscoped].freeze
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rubocop/cop/rails/unscoped_over_non_model_constant.rb', line 28 def on_send(node) return unless node.receiver return if node.receiver.respond_to?(:method_name) && _allowed_methods.include?(node.receiver.method_name.to_s) unscoped_call?(node) do next unless _unscoped_on_non_const?(node) range = node.loc.selector.with(end_pos: node.loc.expression.end_pos) add_offense(range) end end |