Pourquoi ne trouve pas « haml --check » cette erreur de syntaxe flagrante
-
10-10-2019 - |
Question
Je cherchais des tâches de râteau qui me aider à traquer les erreurs de syntaxe, et je suis tombé sur haml --check
comme une solution possible pour les fichiers HAML double vérification. Malheureusement, quand je l'ai passé cet exemple cassé, haml dit la syntaxe est OK.
Ai-je mal compris le but de haml --check
ou est cette fonction pas pleinement mis en œuvre?
Je suppose que je devrais mentionner que je utilise Haml / Sass 3.0.25 (Classy Cassidy), rails 3.0.3, rubis 1.9.2p0 et 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)}
Le dernier caractère (accolade) devrait déclencher une erreur de syntaxe, certainement lorsque le modèle est exécuté dans le cadre d'une demande:
ActionView::Template::Error (compile error /usr/local/app/diaspora/app/views/aspects/edit.html.haml:13: syntax error, unexpected '}', expecting ')'
La solution
Peut-être parce que -c, --check Just check syntax, don't evaluate.
Je suppose:. Il vérifie que la syntaxe haml et ne pas évaluer ruby ??en ligne
- modifier
a besoin probablement certains plus de tests, mais je l'ai eu à travailler sur les fichiers HAML simples:)
haml --debug newsletter.html.haml 2> /dev/null | sed '$d' | ruby -c
En théorie:
imprime HAML sur la source Ruby précompilés (et les messages d'erreur à la fin), nous essayons d'obtenir seulement la partie de rubis et vérifier la syntaxe.