背景
先日書いた時期(Railsのblank?が優秀だった)の中で疑問が湧きました。blank?
メソッドはどこに定義されているか、どうやって調べたらいいのか。
String#blanK?
は、Rubyでは定義されておりませんでした。
irb(main):001:0> ''.blank?
Traceback (most recent call last):
2: from /Users/yoshinori/.rbenv/versions/2.5.3/bin/irb:11:in `<main>'
1: from (irb):1
NoMethodError (undefined method `blank?' for "":String)
じゃあ、なんで使えたんだろう。。
ということで、String#blank?
についてはググるとRailsで用意されていることがわかりました。
しかし、もう少しマイナーなgemだったりしたらわからなかったかも...
良記事発見!!!
irb(main):001:0> ''.method(:blank?).source_location
=> ["~/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.2.3/lib/active_support/core_ext/object/blank.rb", 122]
どのgemのどのクラスのどの行で定義されているかが一発でわかりました。
最&高ですね。