class RuboCop::Cop::Layout::AccessModifierIndentation

end
def smooth; end
private
class Plumbus
# good
end
def smooth; end
private
class Plumbus
# bad
@example EnforcedStyle: outdent
end
def smooth; end
private
class Plumbus
# good
end
def smooth; end
private
class Plumbus
# bad
@example EnforcedStyle: indent (default)
keyword, depending on configuration.
indented as deep as method definitions, or as deep as the ‘class`/`module`
Bare access modifiers (those not applying to specific methods) should be

def autocorrect(corrector, node)

def autocorrect(corrector, node)
  AlignmentCorrector.correct(corrector, processed_source, node, @column_delta)
end

def check_body(body, node)

def check_body(body, node)
  modifiers = body.each_child_node(:send).select(&:bare_access_modifier?)
  end_range = node.loc.end
  modifiers.each do |modifier|
    next if same_line?(node, modifier)
    check_modifier(modifier, end_range)
  end
end

def check_modifier(send_node, end_range)

def check_modifier(send_node, end_range)
  offset = column_offset_between(send_node.source_range, end_range)
  @column_delta = expected_indent_offset - offset
  if @column_delta.zero?
    correct_style_detected
  else
    add_offense(send_node) do |corrector|
      if offset == unexpected_indent_offset
        opposite_style_detected
      else
        unrecognized_style_detected
      end
      autocorrect(corrector, send_node)
    end
  end
end

def expected_indent_offset

def expected_indent_offset
  style == :outdent ? 0 : configured_indentation_width
end

def message(range)

def message(range)
  format(MSG, style: style.capitalize, node: range.source)
end

def on_class(node)

def on_class(node)
  return unless node.body&.begin_type?
  check_body(node.body, node)
end

def unexpected_indent_offset

changed.
An offset that is not expected, but correct if the configuration is
def unexpected_indent_offset
  configured_indentation_width - expected_indent_offset
end