Rails開発で有用な便利Gem一覧：2014年版

[Ruby Advent Calendar 11日目](http://qiita.com/advent-calendar/2014/ruby)

[Ruby - Rails開発で有用な便利Gem一覧：2013年版 - Qiita](http://qiita.com/shu_0115/items/f5f79154dd4e30a78fcd)
↑去年のAdventCalendarで書いた上記の記事の2014年版です。
だんだん毎年恒例的になって来ました。
最近はデファクトスタンダードがほぼ固まってきて、かなり毎回使うGemのリストが固定化して来ました。

※2014/12/11時点

## DBアダプタ

* [sqlite3](https://github.com/luislavena/sqlite3-ruby)
* [pg](https://github.com/ged/ruby-pg)
* [mysql2](https://github.com/brianmario/mysql2)

この辺りはもう変わらないですね。
RubyやRailsのバージョンが上がっても継続的に開発が続けられているのは素晴らしいと思います。

## ログイン認証

* [omniauth](https://github.com/intridea/omniauth)
* [omniauth-twitter](https://github.com/arunagw/omniauth-twitter)
* [omniauth-facebook](https://github.com/mkdynamic/omniauth-facebook)
* [omniauth-github](https://github.com/intridea/omniauth-github)
* [omniauth-identity](https://github.com/intridea/omniauth-identity)

(`omniauth-github`のリポジトリのURLが変わってました。。)

`omniauth-identity`は更新が1年以上止まってるようなので、使う際は注意が必要かも知れません。

↓自作Gemもたまにアップデートしています。
[shu0115/minimum-omniauth-scaffold](https://github.com/shu0115/minimum-omniauth-scaffold)

## 定数／設定値管理

* [rails_config](https://github.com/railsjedi/rails_config)
* [figaro](https://github.com/laserlemon/figaro)
* [settingslogic](https://github.com/binarylogic/settingslogic)

この辺りも継続的に更新はされているようなので、好みで選んでも良いと思います。
自分は毎回rails_configを使ってます。

## ページネーター

* [kaminari](https://github.com/amatsuda/kaminari)

お馴染み。
これはページネーションをするしないに関わらず、いつでも使えるように毎回デフォルトでインストールしています。

## ユーティリティ

* [action_args](https://github.com/asakusarb/action_args)
* [html5_validators](https://github.com/amatsuda/html5_validators)

これも毎回使ってますね。

* [New] [opal-rails](https://github.com/opal/opal-rails)

これは最近知ったのですが、RubyをJavaScriptに変換するOpalというコンパイラがあるそうです。
まだあまり使えていないので何とも言えませんが、常々フロントエンドもRubyで書きたいと思っていたので、積極的に試してみたいと思います。

## デバッグ

* [tapp](https://github.com/esminc/tapp)
* [awesome_print](https://github.com/michaeldv/awesome_print)
* [rails-flog](https://github.com/pinzolo/rails-flog)
* [pry-rails](https://github.com/rweng/pry-rails)
* [better_errors](https://github.com/charliesome/better_errors)
* [binding_of_caller](https://github.com/banister/binding_of_caller)
* [quiet_assets](https://github.com/evrone/quiet_assets)
* [New] [bullet](https://github.com/flyerhzm/bullet)

最近はN+1問題検出用の`bullet`も毎回とりあえず入れるようにしています。
`includes`を付け忘れた時などにログに出力してくれるので助かります。

## アプリケーションサーバ

* [puma](https://github.com/puma/puma)
* [unicorn](https://github.com/defunkt/unicorn)
* [passenger](https://github.com/phusion/passenger)

`unicorn`だとワーカー数の調整が面倒だったり、Herokuだとメモリがキツかったりするので、最近は結構`puma`を使う事が多いです。

## Markdown

* [redcarpet](https://github.com/vmg/redcarpet)
* [rubychan/coderay](https://github.com/rubychan/coderay)
* [redcarpet_filename_extension](https://github.com/naoty/redcarpet_filename_extension)

自分が趣味で作る個人のWebサービスだとほぼ毎回Markdownを使えるようにしているので、この辺りも使う事が多いです。

参考: [Markdown／シンタックスハイライト導入 - redcarpet／coderay - Qiita [キータ]](http://qiita.com/shu_0115/items/476a51cb4751515f3ac2)

## 画像管理

* [carrierwave](https://github.com/jnicklas/carrierwave)
* [paperclip](https://github.com/thoughtbot/paperclip)
* [mini_magick](https://github.com/minimagick/minimagick)

`carrierwave`+`mini_magick`の構成で使う事が多いです。

## ジョブキュー処理

* [resque](https://github.com/defunkt/resque)
* [delayed_job](https://github.com/collectiveidea/delayed_job)
* [sidekiq](https://github.com/mperham/sidekiq)

参考：

* [ジョブキュー処理のResqueとDelayed Jobの使い分けの方針などはありますか？ - QA@IT](http://qa.atmarkit.co.jp/q/2406)
* [Rails 4.2で導入されたActive Jobを使ってみよう - Qiita](http://qiita.com/ryohashimoto/items/2f8fd685920a5318def4)
* [Rails4.2の新機能について - Qiita](http://qiita.com/s_nakamura/items/f6e9f9c461ecb0b9774d#2-1)

Rails4.0から見送られていた、Rails側にデフォルトで入るキューの仕組みが4.2でついに導入されるみたいですね。

## Twitter／Facebook API操作

* [twitter](https://github.com/sferik/twitter)
* [fb_graph](https://github.com/nov/fb_graph)

この辺りも継続的に更新されているようです。

## エラーハンドリング

* [exception_notification](https://github.com/smartinez87/exception_notification)

参考：[Rails で捕捉されない例外が発生したらメールを送る #Ruby #Rails #rack #AdventCalendar - Qiita](http://qiita.com/items/adb89ede814b86e9c04a)

## 管理画面

* [rails_admin](https://github.com/sferik/rails_admin)
* [active_admin](https://github.com/gregbell/active_admin)

## モバイル

* [jpmobile](https://github.com/jpmobile/jpmobile)
* [mobylette](https://github.com/tscolari/mobylette)

---

基本的に去年からあまり代わり映えの無いラインナップになりましたが、Rails4へのアップデートも落ち着いて、定番どころがかなり固まってきた印象です。

最近新しく使ってみたGemなどあれば是非教えてください。

以上です。