Merbでhamlを使ってみる

Merbでテンプレートエンジンにhamlを使ってみたら超簡単だったけど一応まとめ


merb-genでアプリを作成し、init.rbを修正する

%merb-gen app test
%cd test
%vi config/init.rb

修正内容は以下の通り

require 'config/dependencies.rb'

use_orm :datamapper
use_test :rspec
use_template_engine :haml #erbになっていたところをhamlに書き換える

最後にリソースを作成

%merb-gen resource hoge huga:sting

これでapp/view/hoge に〜.html.hamlができている
ちなみに最初はerbで作り始めてhamlにスイッチする場合はhtml2hamlを使うと簡単です。
html2hamlを使うとerbで書いたViewをhaml文法に直してくれます。(hamlの勉強にも最適です)
使い方は

%sudo gem install html2haml
%sudo gem install hpricot
%html2haml -r 変換したい.erbファイル名 変換後のファイル名 # 変換後の名前は〜.html.hamlがわかりやすいかも

hamlの文法はhamlのサイトチュートリアルがあるのでそれを参照してください。
結構わかりやすいです。

emacsへの設定

haml-mode.elとsass-mode.elをここからダウンロードしてロードパスの通ったところに配置

.emacsに以下の記述を追記

;;haml-mode
(require 'haml-mode nil 't)
(add-to-list 'auto-mode-alist '("\\.haml$" . haml-mode))
;;sass-mode
(require 'sass-mode nil 't)
(add-to-list 'auto-mode-alist '("\\.sass$" . sass-mode))

これでインデントがしやすくなったり、色づけされたりするのでちょっと便利○

使ってみた感想

かなり簡潔に書ける点は◎
ただ、yamlpythonみたいにインデントで構造を記述するので嫌いな人は嫌いかも