class RuboCop::Cop::Style::MultilineIfThen

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

Constants

MSG
NON_MODIFIER_THEN

Public Instance Methods

on_normal_if_unless(node) click to toggle source
# File lib/rubocop/cop/style/multiline_if_then.rb, line 28
def on_normal_if_unless(node)
  return unless non_modifier_then?(node)

  add_offense(node.loc.begin, message: format(MSG, keyword: node.keyword)) do |corrector|
    corrector.remove(range_with_surrounding_space(node.loc.begin, side: :left))
  end
end

Private Instance Methods

non_modifier_then?(node) click to toggle source
# File lib/rubocop/cop/style/multiline_if_then.rb, line 38
def non_modifier_then?(node)
  NON_MODIFIER_THEN.match?(node.loc.begin&.source_line)
end