1
1

インスタンスやクラスにどういうメソッドがあるか調べる方法

Last updated at Posted at 2024-08-17

はじめに

実務でrubyを書いているのですが、インスタンスやクラスにどういうメソッドがあるか調べる方法を調べてみました。

環境

❯ ruby -v                 
ruby 3.2.0

クラスにメソッドが定義されているか調べる

クラスオブジェクトに対してinstance_methodsメソッドを使うと調べられます。
さらにgrepを使って絞り込みました。

instance_methodsメソッドの戻り値はarrayなのでgrepメソッドが使えます
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/grep.html

irb(main):017> Range.instance_methods.grep(/each/)
=> 
[:each,
 :each_cons,
 :each_with_object,
 :each_with_index,
 :reverse_each,
 :each_entry,
 :each_slice]

用途

対象クラスでどんなメソッドが使えるか調べられます。

しかし、公式ドキュメントを探しに行った方が早いかもしれません
https://docs.ruby-lang.org/ja/latest/class/Range.html

インスタンスに対してはmethodsメソッドで調べられる

インスタンスに対してはmethodsメソッドで利用できるメソッド一覧を調べられる。
同じく戻り値は配列なので、grepで絞り込める

irb(main):027> [].methods.grep /each/
=> 
[:each_index,
 :reverse_each,
 :each,
 :each_cons,
 :each_with_object,
 :each_with_index,
 :each_entry,
 :each_slice]

grepメソッドは部分一致検索なので、メタ文字列を使用しなくてもサクッと調べられるのが良い

irb(main):030> [].methods.grep /.*each.*/
=> 
[:each_index,
:reverse_each,
:each,
:each_cons,
:each_with_object,
:each_with_index,
:each_entry,
:each_slice]
1
1
0

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
1
1