Skip to content

Instantly share code, notes, and snippets.

@ne-sachirou
Forked from kakutani/Annotation.md
Created December 13, 2016 08:44
Show Gist options
  • Save ne-sachirou/7e524f505037a9a0b13fdc2ae5b15821 to your computer and use it in GitHub Desktop.
Save ne-sachirou/7e524f505037a9a0b13fdc2ae5b15821 to your computer and use it in GitHub Desktop.
Raw Gemfile on Idobata (master - 5adeddb)

Idobata Gemfile プレゼント

tl;dr IdotabaのGemfileは"全プレ"になりました。ご笑納ください。→ Gemfile

プレゼントについてのお詫び

rebuild.fmのep36でお知らせさせていただきました、Idobataの最新版Gemfileプレゼントをお届けいたします。 過日はIdobata会議01への多数のご参加ありがとうございました。おかげさまで盛況なミートアップとなりました。 (当日会場を提供いただいたEngine Yardさまのブログにて、Idobata会議01当日の様子がまとめられています。ありがとうございます!)

さて、肝心のGemfileですが、Engine Yard Cloudのstable-v4スタックでRuby 2.1.2が利用可能になるのを待ちつつ、2.1.2対応をしていたら、Gemfileをお届けするのが随分と遅くなってしまいました。

プレゼントが届くことを楽しみにしていただいた応募者の皆さまの気分を害してしまい、申し訳ございませんでした。 そのお詫びというわけではありませんが、Gemfileは応募者全員プレゼントといたします。ご笑納ください。

本Gemfileは、2014/05/28未明のメンテナンスにて本番環境にデプロイされたコードベースのものです。

IdobataチームのGemfileの記述スタイル

1. gemファイルの並び順はascii順

新しく追加するgemをどこに入れるのか悩む時間を減らします。

2. ライブラリのバージョンはできるだけ指定しない

バージョンを指定するのは、最新のバージョンでアプリケーションが動かなくなる場合のみ。 ライブラリ側を直す必要があるならPull Request。

バージョンを指定する際には、バージョンを指定した理由を添えることを心がけます (とはいえ、Railsやらbootstrapのメジャーバージョンは指定しております 😤)。

3. :developmentと:testの両方のグループで必要になるgemの記述

:test用の目的で使う意図で追加してるんだけど、:developmentでも動作の都合上必要なgemは 次のように、ハッシュで「サブグループ」的にグループを指定します。

group :test do
  ...
  gem 'rspec-rails', '~> 3.0.0.beta', group: 'development'
  ...
end

同様に:development用なのだけれども、:testでも必要になるものは:

group :development do
  ...
  gem 'tapp-awesome_print', group: 'test'
  ...
end

といった形式で指定しています。

Idobataチームのお気に入りgem

  • html-pipeline: idobataだとメッセージを様々に整形する必要があるため、とても助かっています。
  • action_args: controllerで自明な内容をDRYにできる、べんりなライブラリ。Ruby 1.9 のリリース後のAsakusa.rbでMethod#parammetersが話題になりました。当時、界隈ではこのテクニックを「メソパラ」と呼んだりもしていました。
  • database_rewinder: こちらはテスト用のライブラリですが、"database_rewinder is a minimalist's tiny and ultra-fast database cleaner." 速いです。

地元で作られているgemも積極的に使っています。

それではお楽しみくださいませ。

Idobata Team

source 'https://rubygems.org'
ruby '2.1.2'
gem 'action_args'
gem 'actionpack-xml_parser'
gem 'actionview-encoded_mail_to'
gem 'active_attr'
gem 'active_model_serializers', github: 'ursm/active_model_serializers', branch: 'rails-4.1'
gem 'bootstrap-sass', '~> 2.3' # TODO 3.x に上げる
gem 'carrierwave'
gem 'carrierwave_backgrounder'
gem 'cells'
gem 'chronic'
gem 'closure-compiler'
gem 'coffee-rails', '~> 4.0.0'
gem 'custom_configuration'
gem 'devise'
gem 'devise-async'
gem 'ember-data-source', '0.14'
gem 'ember-rails'
gem 'enumerize', github: 'ursm/enumerize', branch: 'fix-ar4'
gem 'escape_utils'
gem 'event_tracker'
gem 'figaro'
gem 'fog'
gem 'font-awesome-rails'
gem 'gcm'
gem 'gemoji'
gem 'girl_friday'
gem 'github-linguist', group: 'has-icu'
gem 'github-markdown'
gem 'grocer'
gem 'haml-rails'
gem 'hamlbars'
gem 'hashie'
gem 'hiredis'
gem 'hpricot'
gem 'html-pipeline', require: 'html/pipeline', github: 'jch/html-pipeline'
gem 'jquery-atwho-rails', '0.4.7' # 0.4.9 は補完が妙高さんになる
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'mini_magick'
gem 'momentjs-rails'
gem 'oj'
gem 'omniauth'
gem 'omniauth-github'
gem 'party_foul', github: 'tricknotes/party_foul', branch: 'fix-issue-labels-format' # Workaround until this PR is merged: https://github.com/dockyard/party_foul/pull/103
gem 'pg'
gem 'pusher'
gem 'rails', '~> 4.1.0'
gem 'redcarpet'
gem 'redis', require: %w(redis redis/connection/hiredis)
gem 'redis-objects', require: 'redis/objects'
gem 'retriable'
gem 'rinku'
gem 'sanitize'
gem 'sass-rails', '~> 4.0.0'
gem 'sidekiq'
gem 'sinatra', require: false # Sidekiq::Web, GirlFriday::Server
gem 'skylight'
gem 'uglifier', '>= 1.3.0'
gem 'underscore-rails'
gem 'unf'
gem 'unicorn'
gem 'visibilityjs'
group :development do
gem 'bullet'
gem 'letter_opener'
gem 'pry', group: 'test'
gem 'quiet_assets'
gem 'tapp-awesome_print', group: 'test'
gem 'vendorer'
gem 'what_methods'
end
group :test do
gem 'capybara', github: 'jnicklas/capybara'
gem 'capybara-webkit'
gem 'database_rewinder'
gem 'email_spec', github: 'bmabey/email-spec'
gem 'factory_girl_rails', group: 'development'
gem 'fakeredis', require: 'fakeredis/rspec', github: 'guilleiguaran/fakeredis'
gem 'fuubar', '~> 2.0.0.beta'
gem 'launchy'
gem 'rspec-cells'
gem 'rspec-its'
gem 'rspec-rails', '~> 3.0.0.beta', group: 'development'
gem 'rspec-retry' # TravisCI上でどうしてもタイミング依存でfailするcapybara経由のexampleがあるので止むなし
gem 'teaspoon', group: 'development'
end
group :production do
gem 'dalli'
gem 'newrelic-redis'
gem 'newrelic_rpm'
gem 'rails_12factor', require: false
gem 'memcachier', require: false
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment