Sha256: e19dfca9dbb7ada6839f8a4be77169a4b6013c5cf2b5a9ec2cc97641ab75dbd8
Contents?: true
Size: 1.96 KB
Versions: 16
Compression:
Stored size: 1.96 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # Checks for uses of unless with a negated condition. Only unless # without else are considered. There are three different styles: # # * both # * prefix # * postfix # # @example EnforcedStyle: both (default) # # enforces `if` for `prefix` and `postfix` conditionals # # # bad # unless !foo # bar # end # # # good # if foo # bar # end # # # bad # bar unless !foo # # # good # bar if foo # # @example EnforcedStyle: prefix # # enforces `if` for just `prefix` conditionals # # # bad # unless !foo # bar # end # # # good # if foo # bar # end # # # good # bar unless !foo # # @example EnforcedStyle: postfix # # enforces `if` for just `postfix` conditionals # # # bad # bar unless !foo # # # good # bar if foo # # # good # unless !foo # bar # end class NegatedUnless < Base include ConfigurableEnforcedStyle include NegativeConditional extend AutoCorrector def on_if(node) return if node.if? || node.elsif? || node.ternary? return if correct_style?(node) message = message(node) check_negative_conditional(node, message: message) do |corrector| ConditionCorrector.correct_negative_condition(corrector, node) end end private def message(node) format(MSG, inverse: node.inverse_keyword, current: node.keyword) end def correct_style?(node) style == :prefix && node.modifier_form? || style == :postfix && !node.modifier_form? end end end end end
Version data entries
16 entries across 16 versions & 3 rubygems