Ruby · Avançado · Inglês · Técnico
Module nesting
Module.nesting devolve a lista de módulos e classes abertos lexicalmente no ponto da chamada, do mais interno ao mais externo. Define onde o Ruby procura constantes primeiro.
Onde usar
Aparece ao depurar NameError de constante em código aninhado. A forma compacta module A::B não coloca A no nesting, ao contrário de abrir A e depois B dentro.
Em código
module A
module B
p Module.nesting # => [A::B, A]
end
end
module A::B
p Module.nesting # => [A::B]
endExemplos
Print Module.nesting to see why the constant isn't found.
Imprima Module.nesting para ver por que a constante não é achada.
The compact syntax changes the nesting.
A sintaxe compacta muda o nesting.
Cuidado
Não confunda com ancestors: o nesting reflete a estrutura do texto do código; ancestors, a cadeia de herança.
Sinônimos
escopo léxico