class RuboCop::Cop::Layout::DefEndAlignment
end
private def foo
# good
end
private def foo
# bad
@example EnforcedStyleAlignWith: def
end
private def foo
# good
end
private def foo
# bad
@example EnforcedStyleAlignWith: start_of_line (default)
‘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 EnforcedStyleAlignWith configuration
aligned properly.
This cop checks whether the end keywords of method definitions are
def autocorrect(corrector, node)
def autocorrect(corrector, node) if style == :start_of_line && node.parent && node.parent.send_type? AlignmentCorrector.align_end(corrector, processed_source, node, node.parent) else AlignmentCorrector.align_end(corrector, processed_source, node, node) end end
def on_def(node)
def on_def(node) check_end_kw_in_node(node) end
def on_send(node)
def on_send(node) return unless node.def_modifier? method_def = node.each_descendant(:def, :defs).first expr = node.source_range line_start = range_between(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