Sha256: dcc2e06ffab504e7fdb541441062a13e7889cecc705901771c58682b3000ca7f
Contents?: true
Size: 894 Bytes
Versions: 230
Compression:
Stored size: 894 Bytes
Contents
# frozen_string_literal: true module RuboCop module Cop # Some common code shared between `NegatedIf` and # `NegatedWhile` cops. module NegativeConditional extend NodePattern::Macros MSG = 'Favor `%<inverse>s` over `%<current>s` for negative conditions.' private # @!method single_negative?(node) def_node_matcher :single_negative?, '(send !(send _ :!) :!)' # @!method empty_condition?(node) def_node_matcher :empty_condition?, '(begin)' def check_negative_conditional(node, message:, &block) condition = node.condition return if empty_condition?(condition) condition = condition.children.last while condition.begin_type? return unless single_negative?(condition) return if node.if_type? && node.else? add_offense(node, message: message, &block) end end end end
Version data entries
230 entries across 221 versions & 22 rubygems