did_you_mean 1.2.0-alpha を見た

Ruby 2.3 で標準添付になった did_you_mean について、Ruby 2.5.0 に向けたマイルストーンのひとつが実装されていたので見てみた。

github.com

以下のように 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 を拡張している実装はなるほどだった。