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

Ruby on Rails Advent Calendar  12日目。

[Rails開発で有用な便利Gem一覧 - Qiita [キータ]](http://qiita.com/shu_0115/items/2378ed4549542c68ef46)
↑去年のAdventCalendarで書いた上記の記事の2013年版です。
去年と比べるとRails3系で使っていたGemが順当にRails4に対応して、継続して使っている印象です。

※2013/12/12時点

### DBアダプタ

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

定番。Rails4になってもおなじみ。

### ログイン認証

* [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/trevorturk/omniauth-github)
* [omniauth-identity](https://github.com/intridea/omniauth-identity)

↓自作したomniauth用のscaffoldを作る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)

これも自分が作るRailsアプリではほぼ毎回使ってます。

### デバッグ

* [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)

7日目のAdvent Calendarで紹介されている`rails-flog`も試しに使ってみてます。
[tail -f pinzo.log: Railsのログに出力されるパラメータとSQLを整形するgemを作った](http://blog.mkt-sys.jp/2013/12/rails-flog.html)

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

* [puma](https://github.com/macournoyer/thin)
* [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)

最近、`redcarpet`と`coderay`で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/probablycorey/mini_magick)

最近はほぼ`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)

Rails4.0で見送られたRailsデフォルトのキューの仕組みはおそらくRails4.1に入るのではないでしょうか。

### Twitter／Facebook API操作

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

### エラーハンドリング

* [smartinez87/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/jpmobile](https://github.com/jpmobile/jpmobile)
* [tscolari/mobylette](https://github.com/tscolari/mobylette)


以上です。

この他にも、たくさん便利なGemがあると思うので、何か良いGemがあったら是非、教えてください。