class RuboCop::Cop::Style::MultilineAssignmentLayout

end
nil
rescue => e
compute
begin
foo =
# good (with EnforcedStyle set to new_line)
end
’bar’
if expression
foo =
# good (with EnforcedStyle set to new_line)
end
’bar’
foo = if expression
# good (with EnforcedStyle set to same_line)
end
’bar’
foo = if expression
# bad (with EnforcedStyle set to new_line)
@example
after the assignment operator.
This cop checks whether the multiline assignments have a newline

def autocorrect(node)

def autocorrect(node)
  case style
  when :new_line
    ->(corrector) { corrector.insert_after(node.loc.operator, "\n") }
  when :same_line
    range = range_between(node.loc.operator.end_pos,
                          extract_rhs(node).source_range.begin_pos)
    ->(corrector) { corrector.replace(range, ' ') }
  end
end

def check_assignment(node, rhs)

def check_assignment(node, rhs)
  return unless rhs
  return unless supported_types.include?(rhs.type)
  return if rhs.loc.first_line == rhs.loc.last_line
  case style
  when :new_line
    check_new_line_offense(node, rhs)
  when :same_line
    check_same_line_offense(node, rhs)
  end
end

def check_new_line_offense(node, rhs)

def check_new_line_offense(node, rhs)
  return unless node.loc.operator.line == rhs.loc.line
  add_offense(node, :expression, NEW_LINE_OFFENSE)
end

def check_same_line_offense(node, rhs)

def check_same_line_offense(node, rhs)
  return unless node.loc.operator.line != rhs.loc.line
  add_offense(node, :expression, SAME_LINE_OFFENSE)
end

def supported_types

def supported_types
  @supported_types ||= cop_config['SupportedTypes'].map(&:to_sym)
end