Rails4 + turbolinksで作ったサービスのGemfileを公開します

個人的に作っていたサービスを無事公開することができたので、Gemfileを公開します。

Puhaar! - お酒を共有するサイト -
http://puhaar.jp


開発の背景についてはこちらのブログエントリを見ていただければ幸いです。

【Rails4】turbolinks使って新規サービス作ってみた - 海苔座布団日記
http://norizabuton.hateblo.jp/entry/2014/10/08/072724

```rb:Gemfile
source 'https://rubygems.org'

gem 'rails', '4.1.6'
gem 'pg', '~> 0.17.1'
gem 'turbolinks'
gem 'jquery-turbolinks', '~> 2.0.2' # $(document).readyを発火させる
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0'
gem 'acts-as-taggable-on', '~> 3.3.0' # タグ機能
gem 'dotenv-rails' # 環境変数管理
gem 'kaminari', '~> 0.16.1'
gem 'draper', '~> 1.3.1' # Decorator層を追加する
gem 'amazon-ecs', '~> 2.2.4' # Amazonアソシエイト
gem 'rails_admin', '~> 0.6.3' # 管理画面
gem 'activerecord-reputation-system', github: 'NARKOZ/activerecord-reputation-system', branch: 'rails4' # いいね実装(PRが通ったら本家に戻す)
gem 'newrelic_rpm' # サーバ監視
gem 'google-analytics-turbolinks' # Googleアナリティクスをturbolinksに対応させる
gem 'nprogress-rails' # プログレスバー
gem 'resque', '~> 1.25.0', require: 'resque/server' # バックグラウンドジョブ
gem 'exception_notification', '~> 4.0.1' # 例外通知

# assets
gem 'sass-rails', '~> 4.0.3'
gem 'bootstrap-sass', '~> 3.2.0'
gem 'compass-rails', '~> 2.0.0'
gem 'bootswatch-rails', '~> 3.2.0'
gem 'font-awesome-rails', '~> 4.1.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'haml-rails', '~> 0.5.3'
gem 'therubyracer'
gem 'jquery-rails'
gem 'jquery-ui-rails', '~> 4.2.1'

# Uploader
gem 'carrierwave', '~> 0.10.0' # ファイルアップローダ
gem 'mini_magick'              # CarrierWaveでリサイズなどができるようになる
gem 'fog', '~> 1.23.0'         # CarrierWaveでAmazon S3に保存できるようになる

# 認証管理
gem 'devise', '~> 3.2.4'
gem 'omniauth', '~> 1.2.2'
gem 'omniauth-twitter', '~> 1.0.1'
gem 'omniauth-facebook', '~> 1.6.0'

group :production do
  gem 'unicorn', '~> 4.8.3'
end

group :development do
  gem 'thin' # 開発用サーバ
  gem 'spring'
  gem 'better_errors'     # エラー画面を見やすくする
  gem 'binding_of_caller' # インスペクション
  gem 'capistrano'        # デプロイ
  gem 'capistrano-rails'  # デプロイ
  gem 'capistrano-rbenv'
  gem 'capistrano-bundler'
  gem 'capistrano3-unicorn'
  gem 'capistrano-resque', '~> 0.2.0', require: false
  gem 'pry', '< 0.10.0'   # すごいirb
  gem 'pry-rails'         # railsでpryが使える
  gem 'hirb'              # SQLの結果を見やすく整形してくれる
  gem 'hirb-unicode'      # hirbの日本語対応
  gem 'quiet_assets'      # assetのログを非表示
  gem 'bullet'            # N+1検出
  gem 'rails-erd'         # ER図生成
  gem 'guard-rspec'       # ファイルが変更されたらRsepcを自動実行
  gem 'guard-livereload'  # ファイルが変更されたらページを自動リロード
  gem 'guard-bundler'     # bundle installの自動化
  gem 'guard-annotate'    # annotateを自動化
  gem 'awesome_print'     # プリントデバッグの出力を整形
  gem 'annotate', '~> 2.6.5' # スキーマ情報を追記
  gem 'rack-mini-profiler',  '~> 0.9.2' # profiler
end

group :test do
  gem 'rspec'
  gem 'rspec-rails', '~> 3.1.0'
  gem 'spring-commands-rspec'
  gem 'factory_girl'     # テストデータの生成
  gem 'database_cleaner' # DBの初期化
end

```

特に今回使ってて良かったものを下にまとめます。

## jquery-turbolinks

https://github.com/kossnocorp/jquery.turbolinks

Turbolinksと合わせてjQueryを使うのであれば鉄板です。Turbolinksで発火しなくなるjQueryの`$(document).ready()`を発火させることが出来ます。

## exception_notification

https://github.com/smartinez87/exception_notification

本番環境で発生した例外をメールで通知してくれます。

## resque

https://github.com/resque/resque

ジョブをキューに登録してバックグランドで処理してくれます。導入にはRedisが必要です。ASCIIcastsに日本語記事があるったので参考になりました。

http://ja.asciicasts.com/episodes/271-resque

上の記事にも書いてありますが、resqueの良いところは管理画面も付属しているところで、deviseとの連携も簡単でした。

## activerecord-reputation-system

https://github.com/twitter/activerecord-reputation-system

簡単にお気に入り機能や投票機能を実装することができます。
まだ本家がRails4に対応していなかったのでNARKOZ氏のForkを使用させていただきました。
このブランチは既に本家にマージされているのでそのうちリリースされると思います。

## draper

https://github.com/drapergem/draper

ModelとViewの橋渡しのようなレイヤーを追加することができ、今まで無理やりHelperに書いていたようなコードが物凄く綺麗になります。
RailsCastsで紹介されているので参考にしました。

http://railscasts.com/episodes/286-draper?language=ja&view=asciicast