個人的に作っていたサービスを無事公開することができたので、Gemfileを公開します。
Puhaar! - お酒を共有するサイト -
http://puhaar.jp
開発の背景についてはこちらのブログエントリを見ていただければ幸いです。
【Rails4】turbolinks使って新規サービス作ってみた - 海苔座布団日記
http://norizabuton.hateblo.jp/entry/2014/10/08/072724
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
Turbolinksと合わせてjQueryを使うのであれば鉄板です。Turbolinksで発火しなくなるjQueryの$(document).ready()
を発火させることが出来ます。
exception_notification
本番環境で発生した例外をメールで通知してくれます。
resque
ジョブをキューに登録してバックグランドで処理してくれます。導入にはRedisが必要です。ASCIIcastsに日本語記事があるったので参考になりました。
上の記事にも書いてありますが、resqueの良いところは管理画面も付属しているところで、deviseとの連携も簡単でした。
activerecord-reputation-system
簡単にお気に入り機能や投票機能を実装することができます。
まだ本家がRails4に対応していなかったのでNARKOZ氏のForkを使用させていただきました。
このブランチは既に本家にマージされているのでそのうちリリースされると思います。
draper
ModelとViewの橋渡しのようなレイヤーを追加することができ、今まで無理やりHelperに書いていたようなコードが物凄く綺麗になります。
RailsCastsで紹介されているので参考にしました。