Ruby 2.3 で標準添付になった did_you_mean について、Ruby 2.5.0 に向けたマイルストーンのひとつが実装されていたので見てみた。
以下のように rake タスクでタイプミスした場合にサジェストがされる機能が加えられている。
Before
% rails db:migrat rails aborted! Don't know how to build task 'db:migrat' (see --tasks) (See full trace by running task with --trace)
After
% rails db:migrat rails aborted! Don't know how to build task 'db:migrat' (see --tasks) Did you mean? db:migrate (See full trace by running task with --trace)
did_you_mean 側で prepend
を使って Rake を拡張している実装はなるほどだった。