class RuboCop::Cop::Style::NilComparison
This cop 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
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 46 def autocorrect(node) new_code = if prefer_comparison? node.source.sub('.nil?', ' == nil') else node.source.sub(/\s*={2,3}\s*nil/, '.nil?') end ->(corrector) { corrector.replace(node.source_range, new_code) } end
on_send(node)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 40 def on_send(node) style_check?(node) do add_offense(node, location: :selector) end end
Private Instance Methods
message(_node)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 57 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 69 def prefer_comparison? style == :comparison end
style_check?(node, &block)
click to toggle source
# File lib/rubocop/cop/style/nil_comparison.rb, line 61 def style_check?(node, &block) if prefer_comparison? nil_check?(node, &block) else nil_comparison?(node, &block) end end