class RuboCop::Cop::Style::ModuleFunction

implications to each approach.
These offenses are not auto-corrected since there are different
end

extend self
module Test
# Good if EnforcedStyle is extend_self
end

module_function
module Test
# Good if EnforcedStyle is module_function
@example
Supported styles are: module_function, extend_self.
module.
This cops checks for use of ‘extend self` or `module_function` in a

def each_wrong_style(nodes)

def each_wrong_style(nodes)
  nodes.each do |node|
    if style == :module_function && node == EXTEND_SELF_NODE
      yield node, MODULE_FUNCTION_MSG
    elsif style == :extend_self && node == MODULE_FUNCTION_NODE
      yield node, EXTEND_SELF_MSG
    end
  end
end

def on_module(node)

def on_module(node)
  _name, body = *node
  return unless body && body.begin_type?
  each_wrong_style(body.children) do |child_node, msg|
    add_offense(child_node, :expression, msg)
  end
end