今流行のmastodonがRailsらしいので、せっかくだからGemfile読んでみた。
ファイルはこれ。
https://github.com/tootsuite/mastodon/blob/master/Gemfile
いつもの
- rails
- sass-rails
- uglifier
- jquery-rails
- kaminari
- nokogiri
- rails-i18n
- sprockets-rails
- tzinfo-data
HTMLレンダ
hamlit-rails
HAML互換テンプレートエンジンのhamlitですね。
simple-navigation
メニュー(グロナビみたいなのとか)簡単に作るマン
simple_form
FormHelperの代替ライブラリ。
htmlentities
HTML実体文字参照のやつ
DB
pg
DBはPostgreSQL!!
pghero
PostgreSQLのパフォーマンスモニターのダッシュボード。へえー!
redis, hiredis
redisにアクセスするやつ。
hiredisはCで書かれたredisアクセスライブラリの、ruby-extension
redis-rails
RailsのセッションストアとしてRedisを使う。
認証系
devise, devise-two-factor'
いつものdeviseー!
MFAにも対応。
doorkeeper'
oauthとかの、API利用者の認証基盤みたいなやつっぽい。
consumer keyとか。
jsとか
react-rails
react.js !!!
browserify-rails
いつもの。
autoprefixer-rails
sassでベンダプレフィックス自動で付けるやつ
バックグラウンド処理
sidekiq
Rails向けのバックグラウンドワーカーライブラリ。
sidekiq-unique-jobs
Sidekiqでジョブの排他処理みたいなのやる。
Rails Controller拡張?
rabl
JSON APIを組むのを補助するライブラリ。
参考:
RailsでJSON APIを定義するならRABLが便利! http://qiita.com/yuch_i/items/f6b04e2875f432f8f806
なるほどー。
Rails Model拡張
peperclip
gem 'paperclip', '~> 5.1'
gem 'paperclip-av-transcoder'
gem 'aws-sdk', '>= 2.0'
画像上げるマン。
paperclip-av-transcoder は動画の変換出来るようにするやつの様子。知らなかった。
aws-sdkのバージョンを指定する必要があったりなかったりするのがpaperclipのちょっとつらい所だ。
rails-settings-cached
いい感じに設定っぽいやつ(Key-Valueストア)を扱えるやつ。
設定はModelにもくっつけられるようす。
ユーティリティ
addressable
better URIクラス。標準ライブラリよりも更にRFC準拠ってことらしい。
twitter-text
twitter的な、 @メンションとか、#ハッシュタグとかをパースするやつ
whatlanguage
文字列が何の言語でかかれているかを推定するやつ
http-accept-language
I18nのlocaleをHTTPヘッダから推量するために使用。
http
HTTP通信するマン。
リモートサーバーとのやり取りに使ってそう。
httplog
外方向のHTTP通信のロガーらしい。
link_header, goldfinger, ostatus2
リモートサーバーとのメッセージングの実装に使われている様子。
この辺に詳しい。
https://gist.github.com/okapies/60d62d0df0163bbfb4ab09c1766558e8
oj
高速なJSONライブラリ
ox
高速なXMLパーザ。
あれっ nokogiriは?
fast_blank
String#blank? の高速な実装、らしい。1.2〜20倍早い。マジか。
rqrcode
QRCode画像作るマン
テスト
rspec-rails, rspec-sidekiq
RSpec でテスト書く。
simplecov
カバレッジレポート生成
webmock
HTTPアクセスをmock化する。
外部サービスへのアクセスを、テストに組み込むのに使うイメージ。
fuubar
RSpecの出力をいい感じにするやつ
fabrication, faker
テストデータ生成。
fabricationは、FactoryGirlみたいなもんか。
開発補助
pry-rails
いつもの。
rails consoleをirbからpryに置き換えるやつ。
i18n-tasks
I18nで設定されていないやつとかがわかる
rubocop
Rubyのフォーマットチェッカー & オートフォーマッタ
better_errors
Railsのエラー画面をもっといい感じにしてくれる。
binding_of_caller
コールスタックを遡って、そのレシーバを返す。
letter_opener, letter_opener_web
ActionMailerのメール送信をトラップして、
ブラウザ上で開いたり、ダッシュボードを提供する。
bullet
N+1クエリ検出
active_record_query_trace
ログに出力されるSQLクエリダンプに、そのクエリを投げた場所(ファイルパスと行数)を追加するっぽい。
デプロイツール
capistrano
- capistrano
- capistrano-rails
- capistrano-rbenv
- capistrano-yarn
いつもの感じ。
yarn用タスクも有るんですね。
capistrano-faster-assets
変更がない場合に、assets:precompileをスキップする感じ。
本番環境用
rails_12factor
12factorという運用思想に従うように調整するっぽい。
https://12factor.net/
lograge
ログを1行化する。
その他
pkg-config
pkg-configのアダプタライブラリ?
OpenBSDでnokogiriのビルドが出来ない問題に対処するために入れた様子。
rack-attack
Rackレベルでの、リクエストレートの制御
rack-cors
Cross-Origin Resource Sharing (CORS) をRackレベルでアレコレしてくれるらしい。
rack-timeout
Heroku製のリクエストのタイムアウト時に例外投げてくれるヤツ。
うちはHeroku使ってないので、nginxのタイムアウトでいいやーとか思ってたけど、Rackレベルで制御もできるんだな。
ruby-oembed
oEmbedっていう、URLを簡単にiframe化できる規格?の実装。
別ツイートの埋め込みとか外部リンクとか?
イマイチ使ってる箇所がわからない。
statsd-instrument
StatsD という情報収集デーモン?のRubyアダプタ?
イマイチわからな。