Rails3用に書かれたerbファイルの文法チェックをする

erubisの文法チェックなら

$ erubis -z

で可能かとおもいきや、RailsというかActionViewのERBは謎の文法拡張がされており無理であった(一部のケースでvalidなテンプレートが引っかかる)。

ActionView::Template::Handlers::Erubisを使うことで正しく解釈可能。
https://github.com/jugyo/rails-erb-check/blob/master/lib/rails-erb-check.rb

ということでこういうシェルスクリプト書いた

function assert_valid_erb() {
	file=$1
	echo "checking $file..."
	ruby -rubygems -raction_view -e 'begin;ActionView::Template::Handlers::Erubis.new(ARGF.read).result;rescue ::SyntaxError;raise $!;rescue ::Exception;end' $file
}