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

Inherits:
RuboCop::Cop::YardocBase 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 with '/Internal/')

module MyInternalModule; end

# good (ignored with 'MyModule')

module MyModule; end

# bad

module MyOtherModule
  # good (ignored with 'MyModule::MySubModule')

  module MySubModule; end

  # good (ignored with 'MyModule')

  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



49
50
51
52
53
54
55
56
# File 'lib/rubocop/cop/yardoc/module_description.rb', line 49

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