Sha256: b6d37b09cf399ba957271aaa80c41c115316ea0959fbef2d65d407fdf22eab74
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Rails # This cop checks to make sure safe navigation isn't used with `blank?` in # a conditional. # # While the safe navigation operator is generally a good idea, when # checking `foo&.blank?` in a conditional, `foo` being `nil` will actually # do the opposite of what the author intends. # # @example # # bad # do_something if foo&.blank? # do_something unless foo&.blank? # # # good # do_something if foo.blank? # do_something unless foo.blank? # class SafeNavigationWithBlank < Cop MSG = 'Avoid calling `blank?` with the safe navigation operator ' \ 'in conditionals.' def_node_matcher :safe_navigation_blank_in_conditional?, <<-PATTERN (if $(csend ... :blank?) ...) PATTERN def on_if(node) return unless safe_navigation_blank_in_conditional?(node) add_offense(node) end def autocorrect(node) lambda do |corrector| corrector.replace( safe_navigation_blank_in_conditional?(node).location.dot, '.' ) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-rails-2.4.0 | lib/rubocop/cop/rails/safe_navigation_with_blank.rb |