Sha256: 4b7d9d46359d1bc4dc3aad807aced86058196bf9051914a7e5f8b47c2a7d72b4
Contents?: true
Size: 1.22 KB
Versions: 6775
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # Checks for uses of the `then` keyword in multi-line if statements. # # @example # # bad # # This is considered bad practice. # if cond then # end # # # good # # If statements can contain `then` on the same line. # if cond then a # elsif cond then b # end class MultilineIfThen < Cop include OnNormalIfUnless include RangeHelp NON_MODIFIER_THEN = /then\s*(#.*)?$/.freeze MSG = 'Do not use `then` for multi-line `%<keyword>s`.'.freeze def on_normal_if_unless(node) return unless non_modifier_then?(node) add_offense(node, location: :begin, message: format(MSG, keyword: node.keyword)) end def autocorrect(node) lambda do |corrector| corrector.remove( range_with_surrounding_space(range: node.loc.begin, side: :left) ) end end private def non_modifier_then?(node) node.loc.begin && node.loc.begin.source_line =~ NON_MODIFIER_THEN end end end end end
Version data entries
6,775 entries across 6,769 versions & 24 rubygems