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 間の比較方法については以下のドキュメントを参照すると良いでしょう。
