2011-01-12 1 views
3

문법 오류를 추적하는 데 도움이되는 레이크 작업을 찾고 있었는데 haml 파일을 이중으로 확인하기위한 가능한 해결책으로 haml --check을 발견했습니다. 불행히도,이 깨진 예제를 전달하면, haml은 구문이 괜찮다고 말합니다.'haml --check'이 문법 오류를 찾습니다.

haml --check의 목적을 오해했거나 완전히 구현되지 않았습니까?

내가 Haml/Sass 3.0.25 (Classy 캐시디), 레일 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 구문 만 검사하고 인라인 루비는 평가하지 않습니다.이

HAML이를 출력 :

이 아마 일부 더 많은 테스트가 필요하지만 간단 HAML 파일 : 이론적으로

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

작업있어

을 --edit 사전 컴파일 된 Ruby 소스 (그리고 결국 오류 메시지)를 사용하여 루비 부분 만 가져 와서 구문을 확인하려고합니다.

+0

구문 오류이므로 이해가 잘 안됩니다. –

+1

Haml은 루비가 아닌 템플릿 마크 업입니다. 비슷한 경우 html을 확인하고 자바 스크립트 오류를 ​​포착하지 않을 것입니다. – Heikki

+2

@Philip C : * HAML * 구문 오류가 아닌 * Ruby * 구문 오류입니다. Ruby 구문 오류를 확인하려면 Ruby 1.9에서'ruby -c'를 사용할 수 있습니다. –