2009-09-22 10 views
5

Acabo de actualizar a Ruby 1.9.1 y casi todos mis rspec están rotos, lo que me da un "no puedo modificar el objeto congelado". Incluso el código de ejemplo Rspec de un generador de rspec_controller falla.Ruby 1.9.1 con rspec "no se puede modificar el objeto congelado"

RuntimeError in 'DownloadsController should use DownloadsController' 
can't modify frozen object                                       
/usr/local/lib/ruby19/1.9.1/timeout.rb:44:in `timeout' 


Generated by the following code: 

it "should use DownloadsController" do 
    controller.should be_an_instance_of(DownloadsController) 
end 

¿Alguien puede ayudar?

+0

¿Tiene un rastro de pila que puede postear? –

+0

Lamentablemente, no puedo encontrar ningún rastro, excepto lo que está arriba ... Incluso con --trace – xto

Respuesta

0

apertura Try /usr/local/lib/ruby19/1.9.1/timeout.rb y reemplazar la línea 44 con la siguiente:

begin 
    return yield(sec) if sec == nil or sec.zero? 
rescue => e 
    puts e.backtrace.join("\n") 
    raise e 
end 

Aunque esto parece extraño, en algunos casos he encontrado que esto me da una información más detallada sobre el origen real del problema. Si aún no sabes cómo solucionar el problema, pega tus resultados aquí y tal vez nos ayude a rastrear el problema.

6

¿Estás acostumbrado a usar algo que no tiene nada que ver?

En 1.8 no se ha congelado. Sin embargo, está congelado en ruby ​​1.9.

+0

Gracias por la entrada. Lo intentaré quizás este fin de semana. Me enviaron a un contrato y me quitaron el proyecto de Rails. – xto

+0

esta debería ser la respuesta aceptada. – professormeowingtons

Cuestiones relacionadas