API開発用必要なGemのまとめ(2015/08更新)
By Huy Van
初めて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
- テストの実行時間を短縮してくれる
factory_girl_rails
- テストデータを用意する
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ファイルを生成