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)
  case style
  when :module_function
    nodes.each do |node|
      yield node if extend_self_node?(node)
    end
  when :extend_self
    nodes.each do |node|
      yield node if module_function_node?(node)
    end
  end
end

def message(_node)

def message(_node)
  style == :module_function ? MODULE_FUNCTION_MSG : EXTEND_SELF_MSG
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|
    add_offense(child_node)
  end
end