LoginSignup
10

More than 5 years have passed since last update.

typo でNoMethodError が発生した時に正しい名前の候補を提示する

Last updated at Posted at 2013-01-26

kaminari でありがちな間違いという投稿があるように、名前を typo していたり、単語を間違えて覚えてしまっているためにハマってしまうのは時間がもったいないですよね。そこで、こんな感じのを作ってます。

[2] pry(main)> [].unique
NoMethodError: undefined method `unique' for []:Array
from (pry):2:in `__pry__'

  Did you mean this?
      Array#uniq
      Array#uniq!

[3] pry(main)>

雑感

  • NameError ではまだ候補を教えてくれない。
    • NameError の対応をすると binding_of_caller に依存するが、あまり気にしてない。
  • 今のところ Pry でしか使えない。
    • これは Pry の中の Exception Handler を書き換えて実現しているため。
    • irb でも使いたいけど、irb に Exception Handler にあたるものがあるのか分からん。
    • Rails でも同じようことはできるはず。
  • NameError 対応が終わったら Gem にする予定。
  • Rails 対応は better_errors 前提で作る予定。
  • 名前募集!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10