class RuboCop::Cop::Style::ClassAndModuleChildren

The compact style is only forced for classes/modules with one child.
end
class Foo::Bar
compact - combine definitions as much as possible
end
end
class Bar
class Foo
nested - have each child on its own line
modules. Basically there are two different styles:
This cop checks the style of children definitions at classes and

def check_compact_style(node, body)

def check_compact_style(node, body)
  return unless one_child?(body) && !compact_node_name?(node)
  add_offense(node, :name, COMPACT_MSG)
end

def check_nested_style(node)

def check_nested_style(node)
  return unless compact_node_name?(node)
  add_offense(node, :name, NESTED_MSG)
end

def check_style(node, body)

def check_style(node, body)
  if style == :nested
    check_nested_style(node)
  else
    check_compact_style(node, body)
  end
end

def compact_node_name?(node)

def compact_node_name?(node)
  node.loc.name.source =~ /::/
end

def on_class(node)

def on_class(node)
  _name, superclass, body = *node
  return if superclass && style != :nested
  check_style(node, body)
end

def on_module(node)

def on_module(node)
  _name, body = *node
  check_style(node, body)
end

def one_child?(body)

def one_child?(body)
  body && [:module, :class].include?(body.type)
end