Class: RuboCop::Cop::Yardoc::ModuleDescription

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

Overview

Ensures all modules have YARD documentation.

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

Examples:

# bad
module MyModule
end

# good
# A useful module.
module MyModule
end

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

# good (ignored)
module MyModule; end

# good (ignored)
module MyInternalModule; end

module MyModule
  # good (ignored)
  module MySubModule; end
  # good (ignored)
  module MyModule; end
end

Constant Summary collapse

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

Instance Method Summary collapse

Methods included from NodeNameHelp

#fully_qualified_name

Instance Method Details

#on_module(node) ⇒ Object

Executed for each module definition

Parameters:

  • node (RuboCop::AST::Node)

    The AST node



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

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

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