class RuboCop::Cop::Style::MultilineInPatternThen


end
arg2)
in pattern then do_something(arg1,
case expression
# good
end
in pattern then do_something
case expression
# good
end
in pattern
case expression
# good
end
in pattern then
case expression
# bad
@example
This cop checks uses of the ‘then` keyword in multi-line `in` statement.

def on_in_pattern(node)

def on_in_pattern(node)
  return if !node.then? || require_then?(node)
  range = node.loc.begin
  add_offense(range) do |corrector|
    corrector.remove(
      range_with_surrounding_space(range: range, side: :left, newlines: false)
    )
  end
end

def require_then?(in_pattern_node)

Requires `then` for write `in` and its body on the same line.
def require_then?(in_pattern_node)
  return true if in_pattern_node.pattern.first_line != in_pattern_node.pattern.last_line
  return false unless in_pattern_node.body
  same_line?(in_pattern_node, in_pattern_node.body)
end