Если вы посмотрите на присвоение log
, вы увидите это:
log = File.read('/tmp/tm_tidy_errors').to_a.select do |line| ... end.join rescue nil
rescue nil
в конце поместит nil
в log
, если файл /tmp/tm_tidy_errors
отсутствует или его невозможно прочитать или что-либо еще. Затем сценарий вызовет метод .empty?
для nil
, но объект nil
не имеет такого метода, и сценарий падает и умирает.
Вы можете устранить проблему, изменив rescue nil
на rescue ''
или изменив unless log.empty?
на unless log.nil? || log.empty?
, но это не может быть реальной проблемой.
У вас установлена TM_TIDY
переменная окружения? Есть ли в вашем PATH
команда tidy
? Похоже, что ваша установка Tidy не правильная (или, возможно, вообще отсутствует). У моего OSX /usr/bin/tidy
и, видимо, это стандартно. Попробуйте вручную выполнить эту большую команду tidy
в терминале и посмотрите, что произойдет.