Pregunta

Noté que las variables de clase @@ my_class var ahora se buscan en el contexto del objeto instance_eval'd en Ruby 1.9.1, mientras que este no era el caso en Ruby 1.8.6.

¿Cuáles son algunas otras diferencias en el comportamiento de instance_eval para Ruby 1.9.1?

¿Fue útil?

Solución

No puedo enumerarlos todos, pero sé que hay algunos cambios en la búsqueda constante. En 1.8, la búsqueda constante estaba en el alcance de los llamantes, mientras que está en el alcance de los bloques en 1.9.

FOO = "hi"

class Something
  FOO = "bye"

  def self.handle(&block)
    instance_eval(&block)
  end
end

p Something.handle { FOO }
# "hi" on 1.8, "bye" on 1.9

Otros consejos

Creo que [al menos actualmente] tampoco regresa a sí mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top