Rails開発で使っているオススメgemを5個(-1個)紹介します

ネット上にはいろいろと便利なgemの紹介サイトがあるわけだが、弊社で使っているgemについても私の独断と偏見で選んだおすすめgemを5個(-1個)ご紹介したい。

コードがRuby Style Guideに沿っているかをチェックするgem。これは以前のブログ記事でも紹介した。
RuboCopを使ってコーディング規約に沿ったコードを書く

RuboCopのデフォルト設定はかなり厳しい。メソッドは10行以内なんかは結構厳しいと思う。チェック項目や設定は変更することができるのだが、あえて厳しい設定でチェックすると、クラス分割やメソッド分割などいろいろと議論のネタを提供してくれて面白い。
例えば、
「ここのメソッドが10行に収まらないんだけどどうすればいいかな?.rubocopを書き換えるって最終手段使っていいですか・・・?」
「うーん、Rubyのシンタックスを変えればなんとか10行に収まるけど、メソッドの役割自体を考えなおして、これこれこういうメソッドに変えたほうがいいんじゃないかな。」
みたいな議論がかわされることになる。

コミット前にバリデーションをかけて、通らなかったらコミットを通らなくする。rubocopチェックを実行することも可能。以前、vimの保存時にrubocopチェックを走らせる方法をご紹介したが、ちょっと保存処理が重くなるので、コミット時にチェックをするのがベターかもしれない。(rubocopに慣れるまでは保存時にチェックをしたほうがよいとおもうけれども。)

参考URL:
git用のpre-commit gemが便利すぎる

(言い訳であるが、)私はもともとCやJavaなどのコンパイル型言語ばかりを書いていた人間なので、Railsアプリケーションがスペルミスでエラーになっている場合に原因に気づかないことがある。このgemは、エラー時に、こういうスペルミスじゃないの?とメッセージ表示してくれるものである。
以下が公式サイトから引用したサンプル。本来user_signed_in?と書くべきところ、user_logged_in?という存在しないメソッド名を書いてしまった時に、正しいメソッド名user_signed_in?をサジェストしてくれている。

精度は結構高く、何度も助けられたことがある。入れておいて損はないのではないだろうか。

AirbrakeというWebアプリケーションのエラーを監視・通知するサービスがある。これは有料サービスなのだが、ErrbitというクローンがOSSで開発されており、Errbitのサーバを立てることでAirbrakeと同様の監視を実現することが可能である。その際、アプリケーションからErrbitへのエラー通知にairbrake gemを使用する。
弊社ではErrbitからSlackにエラーを通知していることが多い。
Errbitおよびairbrake gemの導入方法については、多くのページが引っかかる。
例えば、Errbit - Railsアプリの本番エラーをherokuで管理、メール通知する【無料枠】
ハマりどころはほとんどないと思う。

おすすめgemという記事だけれども、実はこれはあまりおすすめしないgem。。。なので-1個と書いた。
以前、
ActiveAdminでちょっと使い勝手の良い管理画面を作るTips
という記事を書いた。おかげさまで多くの方に見ていただけているのだが、最近感じているのは、正直Active Adminはあまりオススメできないということである。特に、デザインコーディングをちゃちゃっとしてくれる人がいる場合。ただ、デザインのコーダがいなくても、最近はBootstrapなどでちょっとしたデザインはプログラマでも簡単に作れるので、やはりActive Adminはオススメしない。理由はいろいろとあるのだが、だいたい以下の理由である。

  • Active Admin自体のDSLなど、学習コストが発生する。
  • Active Admin標準の機能でできないことをやりたい場合、スクラッチで作るよりも工数が増える場合が(多々)ある。
  • 標準のデザインがちょっと古風?

おわりに

参考までに、いろいろと便利そうなgemが紹介されているサイトへのリンクをはっておく。今後、また良いgemがあればご紹介していこうと思う。

Railsアプリやgem作る時にいつも入れているgem一覧
Rails4 今のところ最強なデバッグツール達
Railsで使いたい便利なgemまとめ
RubyKaigi 2014 で出会った神ツールのメモ
Rubyコードの健康を保つためのgem 5+1選

Ruby on Railsを活用したWebサービスや業務システム開発をご検討の企業様は、是非MMMにご相談下さいませ!

このエントリーをはてなブックマークに追加