デフォルトの Rails ジェネレーターがカスタム ジェネレーターを呼び出すようにする
概要
明確にしておきますが、これは私がやろうとしていることではありません。
私がやりたいのは、次を呼び出したときにジェネレーターが自動的に呼び出されるようにすることです。
rails generate scaffold User name age:integer
テストの置き換えなどを書いているわけではなく、完全にカスタムです。ジェネレーターに関して私が見つけた情報はすべて、最初の 2 つのケースのいずれかに関係していますが、私がやりたいことは含まれていません。 hook_for を見つけたとき、まさに私が必要としていたものだとすぐに思いましたが、どうやらその逆で、カスタム ジェネレーター内から別の Rails ジェネレーターを呼び出します (カスタム ジェネレーター用にテスト ファイルを作成したい場合は、次のようにします)。 hook_for :test_framework を呼び出してから、どこかに TestUnit::MyCustomGenerator クラスを定義します)。
デフォルトの足場ジェネレーターをモンキーパッチして自分のものと呼ぶこともできると思いますが、それは汚い気がします。 https://github.com/Skalar/i18n-yaml-generator のような同様のことを行ういくつかの gem を調べましたが、初期化子と lib/generators を使用するように変換しようとしても機能しません。 scaffold_generator は実行されますが、私のものは呼び出されません。
解決策
私にとっては lib/generators/ から動作します
$ rails g generator scaffold
create lib/generators/scaffold
create lib/generators/scaffold/scaffold_generator.rb
create lib/generators/scaffold/USAGE
create lib/generators/scaffold/templates
$ rails g scaffold
Usage:
rails generate scaffold NAME [options]
....
what/will/it/create
http://guides.rubyonrails.org/generators.html#generators-lookup
別の方法かもしれません:)
また、「完全にカスタム」であれば、別の名前を付けるのが当然ですよね?