class RuboCop::Cop::Style::AccessModifierDeclarations

Access modifiers should be declared to apply to a group of methods or inline before each method, depending on configuration.

@example EnforcedStyle: group (default)

# bad

class Foo

  private def bar; end
  private def baz; end

end

# good

class Foo

  private

  def bar; end
  def baz; end

end

@example EnforcedStyle: inline

# bad

class Foo

  private

  def bar; end
  def baz; end

end

# good

class Foo

  private def bar; end
  private def baz; end

end

Constants

GROUP_STYLE_MESSAGE
INLINE_STYLE_MESSAGE

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 64
def on_send(node)
  return unless node.access_modifier?

  if offense?(node)
    add_offense(node, location: :selector) do
      opposite_style_detected
    end
  else
    correct_style_detected
  end
end

Private Instance Methods

access_modifier_is_inlined?(node) click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 91
def access_modifier_is_inlined?(node)
  node.arguments.any?
end
access_modifier_is_not_inlined?(node) click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 95
def access_modifier_is_not_inlined?(node)
  !access_modifier_is_inlined?(node)
end
group_style?() click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 83
def group_style?
  style == :group
end
inline_style?() click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 87
def inline_style?
  style == :inline
end
message(node) click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 99
def message(node)
  access_modifier = node.loc.selector.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
offense?(node) click to toggle source
# File lib/rubocop/cop/style/access_modifier_declarations.rb, line 78
def offense?(node)
  (group_style? && access_modifier_is_inlined?(node)) ||
    (inline_style? && access_modifier_is_not_inlined?(node))
end