【Ruby3.x】Module::public_instance_methods()メソッドの使い方
public_instance_methodsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
public_instance_methodsメソッドは、レシーバであるクラスまたはモジュールが持つ「公開インスタンスメソッド」の名前の一覧を取得するメソッドです。このメソッドはRubyのModuleクラスに属しており、あるクラスやモジュールが外部に提供する機能、つまりオブジェクトのインスタンスが呼び出し可能なメソッドをプログラムから動的に調べたい場合に非常に役立ちます。
引数を指定しない場合、またはfalseを引数に指定した場合、レシーバであるクラスやモジュール自身が直接定義している公開インスタンスメソッドの名前(Symbolオブジェクト)の配列を返します。これにより、そのクラスやモジュールが独自に実装した機能だけを確認できます。
一方、引数にtrueを指定した場合、そのクラスやモジュール自身が定義しているメソッドだけでなく、親クラスから継承されたメソッドや、インクルードされたモジュールから提供されるメソッドも含め、そのクラスのインスタンスが呼び出し可能な全ての公開インスタンスメソッドの名前を返します。これにより、オブジェクトが利用可能な完全な公開インターフェースを把握することが可能です。
戻り値は、各メソッド名を表すSymbolオブジェクトの配列です。システム開発において、あるクラスがどのような機能を外部に公開しているかを動的に確認したり、リフレクションを用いてクラスの振る舞いを分析したりする際に、このメソッドは重要な役割を果たします。
構文(syntax)
1String.public_instance_methods
引数(parameters)
inherited_too = true
- inherited_too = true: true の場合、親クラスで定義されたメソッドも取得します。false の場合、そのクラス自身で定義されたメソッドのみを取得します。
戻り値(return)
Array
このメソッドは、そのモジュールが持つ公開されているインスタンスメソッドの名前を文字列の配列として返します。