Sha256: 7935cb40be5777ed2c3e1670fb7d8cf4987f97aa6e9d561bdb557fcb6d55a38b
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # This cops checks for use of `extend self` or `module_function` in a # module. # # Supported styles are: module_function, extend_self. # # @example # # # Good if EnforcedStyle is module_function # module Test # module_function # ... # end # # # Good if EnforcedStyle is extend_self # module Test # extend self # ... # end # # These offenses are not auto-corrected since there are different # implications to each approach. class ModuleFunction < Cop include ConfigurableEnforcedStyle MODULE_FUNCTION_MSG = 'Use `module_function` instead of `extend self`.' .freeze EXTEND_SELF_MSG = 'Use `extend self` instead of `module_function`.' .freeze MODULE_FUNCTION_NODE = s(:send, nil, :module_function) EXTEND_SELF_NODE = s(:send, nil, :extend, s(:self)) 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 private 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 end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.45.0 | lib/rubocop/cop/style/module_function.rb |
rubocop-0.44.1 | lib/rubocop/cop/style/module_function.rb |
rubocop-0.44.0 | lib/rubocop/cop/style/module_function.rb |