Ruby · Avançado · Inglês · Técnico
binding
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') # => 43Exemplos
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.