祖先クラスで定義されたすべてのメソッド(これはmethods
のようです)ではなく、呼び出されたRubyオブジェクトによって定義されたメソッドのみを表示するRubyメソッド呼び出しがあるかどうか疑問です。Rubyオブジェクトのメソッドを調べるにはどうすればよいですか?
17
A
答えて
30
methods
は、オブジェクトのクラスとそのスーパークラス、またはオブジェクトのシングルトンメソッドからメソッドをリストするかどうかを指定するオプションのブール型パラメータをとります。したがって、obj.methods(false)
を実行して、obj
に定義されたシングルトンメソッドのみを取得することができます。
オブジェクトのクラスで定義されているメソッドでスーパークラスで定義されているメソッドではない場合は、オブジェクトのクラスでinstance_methods(false)
を呼び出して取得できます。したがって、obj.class.instance_methods(false)
です。
1
あなたはいくつかの選択肢があります - object.methods
、object.public_methods
、object.singleton_methods
...あなたが望むものによって異なります。
# obj is the current object
parent = obj.class.superclass
methods = (obj.methods - parent.methods)
4
を私はobj.methods.sort
に部分的だが、彼らはあなたが使用することもでき
を説明するように、他の回答の一部が一定の場合に優れている:彼らは両方の配列を返すので、あなたのような何かをしようとする場合がありますobj.methods.sort.grep /foo/
を使用して、正規表現に一致するメソッド名を検索します。 これは、あなたが探しているものを知っているときに役立ちます。
関連する問題
- 1. JXAオブジェクトのすべてのメソッドを調べるにはどうすればよいですか?
- 2. Ruby on Railsでアップロードされたファイルのサイズを調べるにはどうすればよいですか?
- 3. オブジェクト入力ストリームからのオブジェクトのクラスを調べるにはどうすればよいですか?
- 4. クロージャがバインドされているオブジェクトのクラス名を調べるにはどうすればよいですか?
- 5. Chromeプラグインのソースコードを調べるにはどうすればよいですか?
- 6. ウィジェットのToplevelコンテナを調べるにはどうすればよいですか?
- 7. javascriptでhtmlを調べるにはどうすればよいですか?
- 8. forループを調べてBig Oのパフォーマンスを調べるにはどうすればよいですか?
- 9. msiがタイムスタンプされているかどうかを調べるにはどうすればよいですか?
- 10. Javaでオブジェクトの識別子を調べるにはどうすればよいですか?
- 11. onSaveInstanceStateのBundleオブジェクトのサイズを調べるにはどうすればよいですか?
- 12. z3_astが節に対応するかどうかを調べるにはどうすればよいですか?
- 13. NetBeansでどのようにメモリリークを調べるにはどうすればいいですか?
- 14. Flash 9:ストリーミングトラックがモノであるかどうかを調べるにはどうすればよいですか?
- 15. コントロールがタブコントロール上にあるかどうかを調べるにはどうすればよいですか?
- 16. ハッシュの意味を調べるにはどうすればいいですか?
- 17. ボットフレームワークのダイアログスタックを調べるにはどうすればいいですか
- 18. 特定のデータを調べるにはどうすればいいですか
- 19. 要素がテキストかどうかをPDFで調べるにはどうすればよいですか?
- 20. IOSデバッガでサブビュープロパティを調べるにはどうすればいいですか
- 21. Contextオブジェクトが1つのアクティビティから別のアクティビティにリークされているかどうかを調べるにはどうすればよいですか?
- 22. 異なるタイプのオブジェクトを持つmapView.annotations配列を調べるにはどうすればいいですか?
- 23. MySQL:どの行の値が大きいかを調べるにはどうすればよいですか?
- 24. typeメンバーが列挙型かどうかを調べるにはどうすればよいですか?
- 25. ruby-profにRubyコア/標準ライブラリ/ gemメソッドを無視させるにはどうすればよいですか?
- 26. メソッドがデコードされた方法でUIスレッドで実行されるかどうかを調べるにはどうすればよいですか?
- 27. Rubyでは、メソッドがどのクラスにあるかを知るにはどうすればいいですか?
- 28. タッチイベントがどのビューで終了したかを調べるにはどうすればよいですか?
- 29. このRubyメソッドをより高速に実行するにはどうすればよいですか?
- 30. オブジェクトにユーザー名とパスワードが含まれているかどうかを調べるにはどうすればよいですか?
あなたは 'parent = obj.class.superclass'を意味します、そうですか? – sepp2k
'whatever.methods'は実行中のRubyのバージョンで' Array'を返します。 'whatever.public_methods'と同じです。 – cHao
@ sepp2k - はい、ありがとう - 固定! – sethvargo