【Ruby3.x】Module::private_instance_methods()メソッドの使い方
private_instance_methodsメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
private_instance_methodsメソッドは、このメソッドを呼び出したモジュールまたはクラスに定義されている、プライベートなインスタンスメソッドの一覧を取得するメソッドです。ここでいうプライベートなインスタンスメソッドとは、そのクラスやモジュール内部からのみ呼び出しが可能で、外部のオブジェクトからは直接アクセスできないメソッドのことを指します。このメソッドは、取得したプライベートメソッドの名前をシンボルの配列として返します。
引数を指定せずに呼び出すか、trueを引数に渡した場合、そのモジュールやクラス自身で定義されたプライベートメソッドだけでなく、親クラスから継承されたものや、インクルードされたモジュールから提供されたものも含め、すべてのプライベートメソッドがリストアップされます。
一方、引数にfalseを指定して呼び出した場合、継承されたりインクルードされたりしたプライベートメソッドは除外し、そのモジュールまたはクラス自身が直接定義したプライベートメソッドのみを対象として結果を返します。
この機能は、特定のクラスが持つ隠れた内部処理を知りたい場合や、プログラムの実行時に動的にメソッド情報を確認したい場合などに活用できます。
構文(syntax)
1class MyClass 2 def public_method 3 # ... 4 end 5 6 private 7 8 def internal_method_a 9 # ... 10 end 11 12 def internal_method_b 13 # ... 14 end 15end 16 17MyClass.private_instance_methods 18MyClass.private_instance_methods(false)
引数(parameters)
inherited_too = true
- inherited_too = true: trueを指定すると、継承されたプライベートメソッドも取得します。falseを指定すると、そのクラス自身で定義されたプライベートメソッドのみを取得します。
戻り値(return)
[Symbol]
このメソッドは、クラスまたはモジュール内で定義されているプライベートなインスタンスメソッドのシンボル名の配列を返します。