Причина в том, что ваш интерпретатор ruby последовательно анализирует ваш файл, поэтому, когда он достигает определения @test3
, ClassB
все еще не объявляется.Если вы можете сделать это, проблему можно решить, определив ClassB
перед ClassA
, чтобы при определении @test3
:
module A
module B
class ClassB < Hash
def initialize(_config = {}, _parent = nil)
puts _config
puts _parent
super()
end
end
class ClassA < Hash
@test1 = Hash.new()
@test2 = Object.new()
@test3 = A::B::ClassB.new()
def initialize(_name, _config = {})
puts _name
puts _config
super()
end
end
end
end
определялось
classB
.