经常我会在Ruby开发中遇到拼写错类名或方法名的时候,程序报错,但我不知道只是拼写错误,我会反复的咕噜:
“太奇怪了,看起来完全没问题呀…”
经常我会在这种事情上浪费大量的时间,而原因可能只是一个字符写错了。我痛恨这种事情。
这就是为什么我开发出 did_you_mean gem。使用它,每当你遇到NoMethodError 或 NameError 时,它会自动的寻找出你真正想调用的正确方法,并告诉你。
gem 'did_you_mean', group: [:development, :test]
那么,当年拼写错了 ActiveSupport 里的 Hash#with_indifferent_access 后,会发生什么事情呢?:
hash.with_inddiferent_access
# => NoMethodError: undefined method `with_inddiferent_access' for {}:Hash
#
# Did you mean? #with_indifferent_access
#
看到了吧!现在,你只需要拷贝/粘贴 ‘did_you_mean’ 提示的正确名字,程序就不会有错了。
did_you_mean gem 会自动的把它推测出的信息显示在错误信息中。也就是说,“Did you mean?” gem 会在任何地方为你服务。下面是一个很典型的例子,是我在一个真实项目中它给出的错误提示:
你可以在GitHub的项目主页中找到更多的例子: yuki24/did_you_mean
赶快使用 did_you_mean gem 吧,不再为拼写错误发愁。Ruby将会读懂你的思想。