lib/rubocop/rspec/language/node_pattern.rb in rubocop-rspec-2.18.1 vs lib/rubocop/rspec/language/node_pattern.rb in rubocop-rspec-2.19.0
- old
+ new
@@ -2,20 +2,46 @@
module RuboCop
module RSpec
module Language
# Helper methods to detect RSpec DSL used with send and block
+ # @deprecated Prefer using Node Pattern directly
+ # Use `'(block (send nil? #Example.all ...) ...)'` instead of
+ # `block_pattern('#Example.all')`
module NodePattern
+ # @deprecated Prefer using Node Pattern directly
def send_pattern(string)
+ deprecation_warning __method__
"(send #rspec? #{string} ...)"
end
+ # @deprecated Prefer using Node Pattern directly
def block_pattern(string)
+ deprecation_warning __method__
"(block #{send_pattern(string)} ...)"
end
+ # @deprecated Prefer using Node Pattern directly
def numblock_pattern(string)
+ deprecation_warning __method__
"(numblock #{send_pattern(string)} ...)"
+ end
+
+ # @deprecated Prefer using Node Pattern directly
+ def block_or_numblock_pattern(string)
+ deprecation_warning __method__
+ "{#{block_pattern(string)} #{numblock_pattern(string)}}"
+ end
+
+ private
+
+ def deprecation_warning(method)
+ # Only warn in derived extensions' specs
+ return unless defined?(::RSpec)
+
+ Kernel.warn <<~MESSAGE, uplevel: 2
+ Usage of #{method} is deprecated. Use node pattern explicitly.
+ MESSAGE
end
end
end
end
end