手元のアプリでなんとなくERBを使っていたのですが、 Haml使いたくなったので、置換してみました。
dhl/erb2haml: Simple script to bulk covert ERB files in a Rails app to Haml
使い方
Gemfileに突っ込んでbundleすれば、以下のrakeタスクが実行できるようになります。
rake haml:convert_erbs # Perform bulk conversion of all html.erb files to Haml in views folder rake haml:replace_erbs # Perform bulk conversion of all html.erb files to Haml in views folder, then remove the converted html.erb files
注意点
置換なので rake haml:replace_erbs
後に git add / commit すると
log が辿れなくなってしまいます。
通常は git mv
( or mv した後に git add .) するところなので、やり方がきれいではありませんが
以下で対応しました。
# 一旦Haml化 (erb/haml 両方が存在) $ bundle exec rake haml:convert_erbs # haml > hamlbk(hamlを一旦退避) $ find app/views -name "*haml" -print0 | perl -pe 's/\.haml\0/\0/g' | xargs -0 -I% mv -f %.haml %.hamlbk # git mv -f で haml に変更 $ find app/views -name "*erb" -print0 | perl -pe 's/\.erb\0/\0/g' | xargs -0 -I% git mv -f %.erb %.haml # ここで一旦commit $ git add app $ git commit -m "Rename erb to haml" # hamlbk > haml (退避したhamlを戻す) $ find app/views -name "*hamlbk" -print0 | perl -pe 's/\.hamlbk\0/\0/g' | xargs -0 -I% mv -f %.hamlbk %.haml # ここで再度コミット $ git add app $ git commit -m "Convert erb to hamle"
git log --follow
で過去のログも見れるようになりました。