API開発用必要なGemのまとめ(2015/08更新)

初めてRailsプロジェクトに入ったとき、Gemfileを見ても全くわからなかった。Rails初心者のため必要なGemをまとめました。良いGemを発見したらどんどん更新していこうと思います。

2015/08/13時点

データベース関連

mysql2

  • MySQLアダプタ
  • MySQLを使うなら必須

redis

  • Ruby client library for Redis
  • cache, session保存用

ar-octopus

  • レプリケーション (master+slave管理)

switch_point (※ 2015/08/13追加)

  • ar-octopusの代替。機能はar-octopusまで高くないが、master+slave切り替えぐらいなら十分

paranoia

  • 論理削除

API

grape

  • REST API生成

grape-entity

  • grapeのサーポート
  • レスポンス(json)を簡単に記述できる

grape-swagger

  • grapeのサーポート
  • Swaggerドキュメントを生成する

kramdown

  • grape-swaggerのサーポート
  • markdownパーサー

rack-cors

  • Cross-Origin Resource Sharing (CORS)をハンドリング
  • Swaggerを別のサーバーに置く場合はこれが必須

kaminariまたはgrape-kaminari

  • APIのページネーション

テスト

rspec-rails

  • テストフレームワーク

capybara (※ 2015/08/13追加)

  • Websiteのテストフレームワーク

shoulda-matchers (※ 2015/08/13追加)

  • モデルテストに便利

spork-rails

  • テストの実行時間を短縮してくれる

factorygirlrails

  • テストデータを用意する

database_cleaner

  • FactoryGirlにて作成するテストデータを、テストを実行する度に消去する

turnip (※ 2015/08/13追加)

  • Rspecの中にCucumber風コードを書ける

capybara-screenshot (※ 2015/08/13追加)

  • Capybaraのテストが失敗したら自動的にスクリーンショートを撮る

ユーザ認証

devise

  • ユーザ登録・ログインまで全てやってくれる

管理画面

activeadmin

  • 10分で作れる管理画面

Push通知

houston

  • iOSデバイスにpush通知を送る定番のgem
  • invalid tokenが混じると通知が届かないバグがある(2014/12)

parse-ruby-client (※ 2015/08/13追加)

  • Parseと連携

バックグラウンド処理

sidekiq

  • バックグラウンドworkerの定番

sucker_punch (※ 2015/08/13追加)

  • Sidekiqはredisが必須なのでインフラコストが上がる。メールをバックグラウンドで送るぐらいならsucker_punchの方が軽い

whenever

  • Cron jobs管理

画像関連

carrierwave

  • 画像アップロードの定番

paperclip (※ 2015/08/13追加)

  • これも画像アップロードの定番

fog

  • carrierwaveのサーポート
  • S3にアップロード

rmagick

  • 画像処理(サイズ調整、角丸など)に便利

デプロイ用

unicorn

  • 本番用のWebサーバー
  • 設定は面倒

capistrano

  • 有名なデプロイツール

capistrano-rails

  • db migrateとassets compileタスクを用意する

capistrano-rbenv

  • デプロイ先にrbenv使ったらこれが必要

capistrano3-unicorn

  • デプロイした後unicornを再起動してくれる
  • Ubuntu14.04とCentOS7は動作確認済み

開発サポート

pry-rails (※ 2015/08/13追加)

  • Rails consoleのirbの代わりにpryを使う

rails-erd (※ 2015/08/13追加)

  • テーブル間の関係の図を生成する

bullet (※ 2015/08/13追加)

  • N+1問題チェック

better_errors (※ 2015/08/13追加)

  • デフォルトより優れているエラーページ

settingslogic (※ 2015/08/13追加)

  • 定数をymlとして管理する

config (※ 2015/08/13追加)

  • settingslogicの代替。定数を環境ごとに別のファイルで管理できる

brakeman (※ 2015/08/13追加)

  • 脆弱性診断

simplecov (※ 2015/08/13追加)

  • テストカバレッジ生成

simplecov-rcov (※ 2015/08/13追加)

  • simplecovからrcovスタイルのindex.htmlファイルを生成