Handles when ClassMethods is used inside a class
This commit is contained in:
parent
a1cad13b92
commit
e3e746623b
|
@ -48,7 +48,7 @@ module RuboCop
|
|||
private
|
||||
|
||||
def extends_activesupport_concern?(node)
|
||||
container_module = container_module_of(node.parent)
|
||||
container_module = container_module_of(node)
|
||||
return false unless container_module
|
||||
|
||||
container_module.descendants.any? do |descendant|
|
||||
|
@ -57,7 +57,9 @@ module RuboCop
|
|||
end
|
||||
|
||||
def container_module_of(node)
|
||||
node = node.parent until node.type == :module
|
||||
while node = node.parent
|
||||
break if node.type == :module
|
||||
end
|
||||
|
||||
node
|
||||
end
|
||||
|
|
|
@ -48,6 +48,17 @@ describe RuboCop::Cop::PreferClassMethodsOverModule do
|
|||
RUBY
|
||||
end
|
||||
|
||||
it "doesn't flag violation when ClassMethods is used inside a class" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
class Foo
|
||||
module ClassMethods
|
||||
def a_class_method
|
||||
end
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "doesn't flag violation when not using either class_methods or ClassMethods" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
module Foo
|
||||
|
|
Loading…
Reference in New Issue