Diferenças no comportamento instance_eval entre Ruby 1.9.1 e 1.8.6?
Pergunta
notei que variáveis ??de classe @@ my_class var são agora olhou para cima no contexto do objeto instance_eval'd em Ruby 1.9.1 que este não era o caso em Ruby 1.8.6.
Quais são algumas outras diferenças no comportamento de instance_eval para Ruby 1.9.1?
Solução
Eu não posso enumerá-los todos, mas eu sei que há algumas mudanças na pesquisa constante. Em 1.8, a pesquisa constante era no âmbito chamadores, enquanto ele está no escopo blocos em 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
Outras dicas
Eu acho que [pelo menos atualmente] não retorna auto, qualquer um.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow