Ruby 編程中拼寫錯(cuò)誤的救星:did_you_mean gem
經(jīng)常我會(huì)在Ruby開發(fā)中遇到拼寫錯(cuò)類名或方法名的時(shí)候,程序報(bào)錯(cuò),但我不知道只是拼寫錯(cuò)誤,我會(huì)反復(fù)的咕嚕:
“太奇怪了,看起來完全沒問題呀…” |
經(jīng)常我會(huì)在這種事情上浪費(fèi)大量的時(shí)間,而原因可能只是一個(gè)字符寫錯(cuò)了。我痛恨這種事情。
這就是為什么我開發(fā)出 did_you_mean gem。使用它,每當(dāng)你遇到NoMethodError 或 NameError 時(shí),它會(huì)自動(dòng)的尋找出你真正想調(diào)用的正確方法,并告訴你。
gem 'did_you_mean', group: [:development, :test]
那么,當(dāng)年拼寫錯(cuò)了 ActiveSupport 里的 Hash#with_indifferent_access后,會(huì)發(fā)生什么事情呢?:
hash.with_inddiferent_access # => NoMethodError: undefined method `with_inddiferent_access' for {}:Hash # # Did you mean? #with_indifferent_access #
看到了吧!現(xiàn)在,你只需要拷貝/粘貼 ‘did_you_mean’ 提示的正確名字,程序就不會(huì)有錯(cuò)了。
did_you_mean gem 會(huì)自動(dòng)的把它推測(cè)出的信息顯示在錯(cuò)誤信息中。也就是說,“Did you mean?” gem 會(huì)在任何地方為你服務(wù)。下面是一個(gè)很典型的例子,是我在一個(gè)真實(shí)項(xiàng)目中它給出的錯(cuò)誤提示:
你可以在GitHub的項(xiàng)目主頁中找到更多的例子: yuki24/did_you_mean
趕快使用 did_you_mean gem 吧,不再為拼寫錯(cuò)誤發(fā)愁。Ruby將會(huì)讀懂你的思想。