2011-01-12 7 views
3

私は構文エラーを追跡するのに役立つレーキタスクを探していましたが、haml --checkがhamlファイルをダブルチェックする可能性のある解決策でした。残念ながら、この壊れた例を渡したとき、hamlは構文がOKであると言います。'haml --check'がこのひどい構文エラーを見つけられないのはなぜですか

私はhaml --checkの目的を誤解しましたか、この機能は完全に実装されていませんか?

私は、Haml/Sass 3.0.25(Classy Cassidy)、レール3.0.3、ルビー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 ')' 

答えて

4

-c, --check Just check syntax, don't evaluate.

理由

推測:これはhaml構文だけをチェックし、インラインルビを評価しません。

--edit

これはおそらく、一部より多くのテストを必要とするが、私はそれは理論的には

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

:)シンプルHAMLファイルで作業しました:

HAMLを出力しますあらかじめコンパイルされたRubyソース(と最後にエラーメッセージ)を受け取ったら、Rubyの部分だけを取得して構文をチェックしようとします。

+0

これは意味が分からないのですが、これは構文エラーです。 –

+1

Hamlはテンプレートマークアップであり、ルビーではありません。同様のケースは、HTMLを検証し、javascriptエラーを拾わないことです。 – Heikki

+2

@Philip C:* HAML *構文エラーではなく、* Ruby *構文エラーです。 Rubyの構文エラーをチェックするには、Ruby 1.9で 'ruby -c'を使用できます。 –

関連する問題