class RuboCop::Cop::Style::NilComparison
Checks for comparison of something with nil using ‘==` and `nil?`.
Supported styles are: predicate, comparison.
@example EnforcedStyle: predicate (default)
# bad if x == nil end # good if x.nil? end
@example EnforcedStyle: comparison
# bad if x.nil? end # good if x == nil end
Constants
- EXPLICIT_MSG
- PREDICATE_MSG
- RESTRICT_ON_SEND
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 46 def on_send(node) style_check?(node) do add_offense(node.loc.selector) do |corrector| new_code = if prefer_comparison? node.source.sub('.nil?', ' == nil') else node.source.sub(/\s*={2,3}\s*nil/, '.nil?') end corrector.replace(node, new_code) parent = node.parent corrector.wrap(node, '(', ')') if parent.respond_to?(:method?) && parent.method?(:!) end end end
Private Instance Methods
message(_node)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 65 def message(_node) prefer_comparison? ? EXPLICIT_MSG : PREDICATE_MSG end
prefer_comparison?()
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 77 def prefer_comparison? style == :comparison end
style_check?(node, &block)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 69 def style_check?(node, &block) if prefer_comparison? nil_check?(node, &block) else nil_comparison?(node, &block) end end