Edited at

今流行のmastodonがRailsらしいので、せっかくだからGemfile読んでみた。

More than 1 year has passed since last update.


今流行の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アダプタ?

イマイチわからな。