Ruby-debug зависает, разбивая зарезервированное слово ruby "break" в строке 94 activesupport-2.3.5/lib/active_support/callbacks.rb.
def run(object, options = {}, &terminator)
enumerator = options[:enumerator] || :each
unless block_given?
send(enumerator) { |callback| callback.call(object) }
else
send(enumerator) do |callback|
result = callback.call(object)
break result if terminator.call(result, object) # This line is the culprit
end
end
end
Я знаю, что break — это зарезервированное слово в Ruby, и я удивлен, что ruby-debug ломается по слову «break» для каждого обратного вызова ActiveSupport. Это сделало почти всю мою отладку бесполезной, так как обратный вызов запускается очень часто. Я больше не могу запускать какие-либо из моих тестов rspec, так как точка останова обратного вызова срабатывает много раз для каждой спецификации.
Вот список всех установленных на данный момент гемов: http://pastie.org/854538
Обновление: я попытался удалить ruby-debug и ruby-debug-base, и теперь я получаю следующее сообщение, когда когда-либо запускаю свои спецификации. Я переустанавливаю эти драгоценные камни по мере необходимости.
debugger statement ignored, use -u or --debugger option on rspec to enable debugging
Я не знаю, как обойти это. Есть идеи?