言語に限らずスクリプトを書いている時にあるオブジェクトに対してメソッドがあるかどうかの確認がしたくなる時がある。Ruby ではメソッドがあるかどうかの確認をするには respond_to? を使用する。 > "hogehoge".respond_to?(:gsub) => true > "hogehoge".respond_to?(:gsu) => false 標準では public と protected なメソッドのみ調べるが、第二引数に true を指定すると private メソッドがあるかも調べてくれる。 一方でクラスにそのメソッドがあるかどうかを確認するには method_defined? を使用する。 > String.method_defined?(:gsub) => true String.method_defined?(:respond_to) => false こちら
![Ruby でメソッドがあるかを確認する方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/963449e3f11496240a14e0d37dc93268bd7f2ebb/height=288;version=1;width=512/https%3A%2F%2Floumo.jp%2Fwp%2Fwp-content%2Fthemes%2Fcocoon-master%2Fscreenshot.jpg)