class RuboCop::Cop::Lint::DefEndAlignment

end
private def foo
@example
`def` keyword.
keyword is. If it’s set to ‘def`, the `end` shall be aligned with the
`end` shall be aligned with the start of the line where the `def`
parameter. If it’s set to ‘start_of_line` (which is the default), the
Two modes are supported through the AlignWith configuration
aligned properly.
This cop checks whether the end keywords of method definitions are

def autocorrect(node)

def autocorrect(node)
  if style == :start_of_line && node.parent && node.parent.send_type?
    align(node, node.parent)
  else
    align(node, node)
  end
end

def on_method_def(node, _method_name, _args, _body)

def on_method_def(node, _method_name, _args, _body)
  check_end_kw_in_node(node)
end

def on_send(node)

def on_send(node)
  return unless modifier_and_def_on_same_line?(node)
  _, _, method_def = *node
  expr = node.source_range
  line_start = Parser::Source::Range.new(expr.source_buffer,
                                         expr.begin_pos,
                                         method_def.loc.keyword.end_pos)
  align_with = {
    def: method_def.loc.keyword,
    start_of_line: line_start
  }
  check_end_kw_alignment(method_def, align_with)
  ignore_node(method_def) # Don't check the same `end` again.
end