2009-09-22 8 views
5

Je viens de mettre à jour vers Ruby 1.9.1 et presque tous mes rspec sont cassés en me donnant un "impossible de modifier un objet gelé". Même l'exemple de code Rspec d'un générateur rspec_controller échoue.Ruby 1.9.1 avec rspec "impossible de modifier l'objet gelé"

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 

Quelqu'un peut-il aider?

+0

Avez-vous une trace de pile que vous pouvez publier? –

+0

Malheureusement, je ne peux obtenir aucune trace sauf ce qui est au-dessus ... Même avec --trace – xto

Répondre

0

Essayez d'ouvrir /usr/local/lib/ruby19/1.9.1/timeout.rb et remplacer la ligne 44 ce qui suit:

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

Bien que cela semble étrange, dans certains cas, j'ai trouvé que cela me donne des informations plus détaillées sur la source réelle du problème. Si vous ne savez toujours pas comment résoudre le problème, collez vos résultats ici et cela nous aidera peut-être à localiser le problème.

6

Utilisez-vous, vous n'essayez pas de boutonner quelque chose qui est nul.

Dans 1,8 nil n'a pas été congelé. Il est cependant gelé en rubis 1.9.

+0

Merci pour l'entrée. Je vais essayer peut-être ce week-end. On m'a envoyé un contrat et j'ai enlevé mon projet Rails. – xto

+0

cela devrait être la réponse acceptée. – professormeowingtons

Questions connexes