class RuboCop::Cop::Style::MultilineTernaryOperator

end
c
else
b
a = if cond
a = cond ? b : c
# good
c
b :
a = cond ?
c
a = cond ? b :
b : c
a = cond ?
# bad
@example
multiline ternary operator expression, it cannot be auto-corrected.
NOTE: ‘return if … else … end` is syntax error. If `return` is used before
This cop checks for multi-line ternary op expressions.

def offense?(node)

def offense?(node)
  node.ternary? && node.multiline?
end

def on_if(node)

def on_if(node)
  return unless offense?(node)
  add_offense(node) do |corrector|
    # `return if ... else ... end` is syntax error. If `return` is used before
    # multiline ternary operator expression, it cannot be auto-corrected.
    next unless offense?(node) && !node.parent.return_type?
    corrector.replace(node, <<~RUBY.chop)
      if #{node.condition.source}
        #{node.if_branch.source}
      else
        #{node.else_branch.source}
      end
    RUBY
  end
end