LoginSignup
126
114

More than 5 years have passed since last update.

Rubyのテンプレートエンジンをerbからslimに変更する際に変えた事

Last updated at Posted at 2014-08-10

新しくrailsでサービスを作る事になったので、どうせなら今後の開発効率化も兼ねてslimにしてみようと変更してみた。
まぁ今さらslimの説明なんて不要だと思うけど、簡単な説明/メリットと変えるにあたって変更した点をまとめておきます。

slimとは?

本家のサイトを引用すると

可読性を保ちつつも、本質的な部分のsyntaxを減らす事を目的とする

パフォーマンステストを見る限り、erb/hamlより優秀w

まとめると、
・可読性は失わない & コード量は減る
・パフォーマンスの面でも他より優秀

良い事だらけだ・・・ww

インストール

gem 'slim-rails'

bundle installを実行。
デフォルトのテンプレートエンジンをslimに変更。

config/application.rb
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

インストールをしたら下記を実行。

~/.vimrc
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です。

126
114
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
126
114