新しくrailsでサービスを作る事になったので、どうせなら今後の開発効率化も兼ねてslimにしてみようと変更してみた。
まぁ今さらslimの説明なんて不要だと思うけど、簡単な説明/メリットと変えるにあたって変更した点をまとめておきます。
##slimとは?
本家のサイトを引用すると
可読性を保ちつつも、本質的な部分のsyntaxを減らす事を目的とする
パフォーマンステストを見る限り、erb/hamlより優秀w
まとめると、
・可読性は失わない & コード量は減る
・パフォーマンスの面でも他より優秀
良い事だらけだ・・・ww
##インストール
gem 'slim-rails'
bundle installを実行。
デフォルトのテンプレートエンジンをslimに変更。
class Application < Rails::Application
config.generators.template_engine = :slim
end
これでrails g した際にはデフォルトでslimになります。
##既存のものをslimに変更
html2slimを使えば既存のhtml/erbもslimに変換してくれます。
最初知らずに、勉強がてら自分で変えていた。。。orz
$ gem install html2slim
インストールすると、
$ html2slim -h
$ erb2slim -h
コマンドが実行できるように。
※rbenvでrubyを管理している人はrbenv rehash実行して下さいねw
How To: Create Haml and Slim Viewsを参考にすると既存のものをワンライナーで変更できるよう。
$ for file in app/views/devise/**/*.erb; do erb2slim $file ${file%erb}slim && rm $file; done
実行すると既存のerbは全てslimに変わりましたね。素晴らしいw
##vimにvim-slimのプラグイン追加
最後にslimに変更するとシンタックスのハイライトが効かなくなったので効くようにプラグインを追加する。
vim-slimのgithubのREADMEをみてもらえれば、方法は書いてます。
ただ僕の場合はREADMEに載っているInstall with pathogenを参考にするとエラーになったので、一応自分の方法を記載。
####pathogenってなんぞや?
知らない人のために一応説明。
pathogenはvimプラグインの読み込みパスを変更するプラグイン。
従来だと.vim/plugin、.vim/autoload等のディレクトリを読み込むようになっていたところを、pathogenを導入すると、.vim/bundle/<プラグイン名>/で管理できるので、プラグイン別にそれぞれディレクトリを切って管理できるようにしてくれます。
早速インストールしていきます。
vim-pathogenのREADMEを参考に、
$ mkdir -p ~/.vim/autoload ~/.vim/bundle && \
$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
インストールをしたら下記を実行。
execute pathogen#infect()
syntax on
filetype plugin indent on
そしてvim-slimをインストール。
$ pushd ~/.vim/bundle; \
$ git clone git://github.com/slim-template/vim-slim.git; \
$ popd
一応vimrcをreloadしておけば、問題なくslimの場合でもvim上でハイライトが効いているかと。
これでslimの環境okです。