rails new
するとき、いつも --skip-xxx
するのとしないとのでどのような違いがあるんだっけ? と気になってしまって毎回調べるのが面倒なのでリポジトリを作りました。
作ったもの
このリポジトリでは、 Rails version
× flag
という組合わせで rails new
を実行して出力されたコードを git の tag で参照できるようにしています。
tag の名前は {Rails version}-{flag}
の形式になっています。
例えば、 Rails 7.0.1 で --minimal
を指定して出力されたコードは 7.0.1-minimal
という Tag で参照することができます。
現時点で対応している Rails のバージョンは以下です。
- 6.0.x
- 6.1.x
- 7.0.x
使い方
見ればわかりそうですが、念のため使い方を書いておきます。
例えば Rails 7.0.1 において、 --api
というフラグがあり、それを指定することによって生成されるコードがどのように変わるのかを調べたいとします。
README.markdown に掲載されている表(以下は抜粋)から --api
の flag の行で 7.0.1
の位置の をクリックすると、GitHub 上で差分を確認することができます。
flag | 6.0.4.4 | 6.1.4.4 | 7.0.1 |
---|---|---|---|
--api | 🔍 | 🔍 | 🔍 |
(2022-01-08 時点の差分表示)
上記から、 --api
を指定することで出力結果に以下の違いがあることがわかります。
- Gemfile に
sprockets-rails
,importmap-rails
,turbo-rails
,stimulus-rails
,jbuilder
, ... (省略) ... が取り除かれる -
ApplicationController
の親クラスがActionController::Base
からActionController::API
に変わる -
config.api_only = true
の設定が追加されることでミドルウエアの構成が必要最小限のものに変わる - などなど...
また、自分で URL を記述することで任意の Tag 同士を比較することができます。 GitHub での Tag 間の比較方法については以下のドキュメントを参照すると良いでしょう。