class RuboCop::Cop::Style::AccessModifierDeclarations

end
private :bar, :baz
class Foo
# bad
@example AllowModifiersOnSymbols: false
end
private :bar, :baz
class Foo
# good
@example AllowModifiersOnSymbols: true (default)
end
private def baz; end
private def bar; end
class Foo
# good
end
def baz; end
def bar; end
private
class Foo
# bad
@example EnforcedStyle: inline
end
def baz; end
def bar; end
private
class Foo
# good
end
private def baz; end
private def bar; end
class Foo
# bad
@example EnforcedStyle: group (default)
using AllowModifiersOnSymbols config.
Applications of visibility methods to symbols can be controlled
EnforcedStyle config covers only method definitions.
or inline before each method, depending on configuration.
Access modifiers should be declared to apply to a group of methods

def access_modifier_is_inlined?(node)

def access_modifier_is_inlined?(node)
  node.arguments.any?
end

def access_modifier_is_not_inlined?(node)

def access_modifier_is_not_inlined?(node)
  !access_modifier_is_inlined?(node)
end

def allow_modifiers_on_symbols?(node)

def allow_modifiers_on_symbols?(node)
  cop_config['AllowModifiersOnSymbols'] && access_modifier_with_symbol?(node)
end

def group_style?

def group_style?
  style == :group
end

def inline_style?

def inline_style?
  style == :inline
end

def message(range)

def message(range)
  access_modifier = range.source
  if group_style?
    format(GROUP_STYLE_MESSAGE, access_modifier: access_modifier)
  elsif inline_style?
    format(INLINE_STYLE_MESSAGE, access_modifier: access_modifier)
  end
end

def offense?(node)

def offense?(node)
  (group_style? && access_modifier_is_inlined?(node)) ||
    (inline_style? && access_modifier_is_not_inlined?(node))
end

def on_send(node)

def on_send(node)
  return unless node.access_modifier?
  return if node.parent&.pair_type?
  return if allow_modifiers_on_symbols?(node)
  if offense?(node)
    add_offense(node.loc.selector) { opposite_style_detected }
  else
    correct_style_detected
  end
end