Ruby 1.9.1 с rspec "не может изменить замороженный объект" - PullRequest
5 голосов
/ 22 сентября 2009

Я только что обновился до Ruby 1.9.1, и почти все мои rspec не работают, давая мне «не может изменить замороженный объект» Даже пример кода Rspec из генерируемого rspec_controller завершается ошибкой.

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

Может кто-нибудь помочь?

Ответы [ 2 ]

6 голосов
/ 20 ноября 2009

Используете ли вы, вы не пытаетесь заглушить что-то ноль.

В 1,8 ноль не был заморожен. Однако он заморожен в рубине 1.9.

0 голосов
/ 05 октября 2009

Попробуйте открыть /usr/local/lib/ruby19/1.9.1/timeout.rb и замените строку 44 следующим:

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

Хотя это кажется странным, в некоторых случаях я обнаружил, что это дает мне более подробную информацию о фактическом источнике проблемы. Если вы все еще не знаете, как решить проблему, вставьте сюда свои результаты, и, возможно, это поможет нам отследить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...