ExpertiDict

Ruby · Avançado · Inglês · Técnico

Module nesting

/ˈmɑdʒul ˈnɛstɪŋ/método

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]
end

Exemplos

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

Veja também

Todos os termos de Ruby