Class: RuboCop::Cop::Yardoc::ClassDescription

Inherits:
Base
  • Object
show all
Includes:
NodeNameHelp
Defined in:
lib/rubocop/cop/yardoc/class_description.rb

Overview

Ensures all classes have YARD documentation.

Classes can be ignored by exact name, qualified name, or regexp pattern.

Examples:

# bad
class MyClass
end

# good
# A useful class.
class MyClass
end

Ignore: ['MyClass', '/Internal/', 'MyModule::MyClass']

# good (ignored)
class MyClass; end

# good (ignored)
class MyInternalClass; end

module MyModule
  # good (ignored)
  class MyCustomClass; end
  # good (ignored)
  class MyClass; end
end

Constant Summary collapse

MSG =
'Missing YARD documentation for class `%<name>s`.'

Instance Method Summary collapse

Methods included from NodeNameHelp

#fully_qualified_name

Instance Method Details

#on_class(node) ⇒ Object

Executed for each class definition

Parameters:

  • node (RuboCop::AST::Node)

    The AST node



41
42
43
44
45
46
47
48
# File 'lib/rubocop/cop/yardoc/class_description.rb', line 41

def on_class(node)
  full_name = fully_qualified_name(node) # MyClass::my_method
  name = full_name.split('::').last # my_method
  return if ignored?(full_name, ignore_list) || ignored?(name, ignore_list)
  return if documented?(node)

  add_offense(node, message: format(MSG, name: full_name))
end