ExpertiDict

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

binding

/ˈbaɪndɪŋ/substantivo

Objeto que captura o contexto de execução em um ponto: variáveis locais, self e bloco atual. Com ele é possível avaliar código nesse contexto depois.

Onde usar

É a base do ERB, que renderiza templates com as variáveis do chamador, e de binding.irb, que abre um console no ponto exato do código. Também explica como closures guardam variáveis.

Em código

def contexto
  x = 42
  binding
end
b = contexto
puts b.local_variable_get(:x)  # => 42
puts b.eval('x + 1')  # => 43

Exemplos

Drop a binding.irb there to inspect the local variables.

Coloque um binding.irb ali para inspecionar as variáveis locais.

ERB renders the template using the caller's binding.

O ERB renderiza o template usando o binding do chamador.

Cuidado

Evite eval com binding e entrada do usuário: executa qualquer código, o que é uma grave falha de segurança.

Veja também

Todos os termos de Ruby