class RuboCop::Cop::Lint::RefinementImportMethods
Checks if `include` or `prepend` is called in `refine` block. These methods are deprecated and should be replaced with `Refinement#import_methods`.
It emulates deprecation warnings in Ruby 3.1.
@safety
This cop's autocorrection is unsafe because `include M` will affect the included class if any changes are made to module `M`. On the other hand, `import_methods M` uses a snapshot of method definitions, thus it will not be affected if module `M` changes.
@example
# bad refine Foo do include Bar end # bad refine Foo do prepend Bar end # good refine Foo do import_methods Bar end
Constants
- MSG
- RESTRICT_ON_SEND
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/lint/refinement_import_methods.rb, line 42 def on_send(node) return if node.receiver return unless node.parent.block_type? && node.parent.method?(:refine) add_offense(node.loc.selector, message: format(MSG, current: node.method_name)) end