Почему «Хэмл -проверка» не находит эту явную синтаксисную ошибку

StackOverflow https://stackoverflow.com/questions/4673391

Вопрос

Я искал задачи граблей, которые помогли бы мне отследить синтаксические ошибки, и я наткнулся на haml --check В качестве возможного решения для двойной проверки файлов HAML. К сожалению, когда я передал его в этот сломанный пример, Хэмл говорит, что синтаксис в порядке.

Я неправильно понял цель haml --check Или эта функция не полностью реализована?

Полагаю, я должен упомянуть, что я использую HAML/SASS 3.0.25 (классная Cassidy), Rails 3.0.3, Ruby 1.9.2p0 и Mac 10.6.6.

$ haml --check /tmp/edit.html.haml
Syntax OK

#/tmp/edit.html.haml
- content_for :head do
  = include_javascripts :aspects

#aspect_edit_pane
  #facebox_header
    %h4
      = @aspect
      .description
        = t('contacts', :count =>@aspect_contacts.count)}

Последний символ (кудрявая скоба) должен вызвать ошибку синтаксиса, он, безусловно, делает, когда шаблон выполняется как часть запроса:

ActionView::Template::Error (compile error 
    /usr/local/app/diaspora/app/views/aspects/edit.html.haml:13: 
    syntax error, unexpected '}', expecting ')'
Это было полезно?

Решение

Может быть, потому, что -c, --check Just check syntax, don't evaluate.

Угадайте: он проверяет только синтаксис HAML и не оценивает inline Ruby.

--редактировать

Это, вероятно, нужно немного Больше тестирования, но я получил работу над простыми файлами HAML :)

haml --debug newsletter.html.haml 2> /dev/null | sed '$d' | ruby -c

Теоретически:

HAML распечатывает предварительный источник Ruby (и сообщения об ошибках в конце), мы стараемся получить только рубиновую часть и проверить синтаксис.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top