Rubyリファレンス: Home

public_methods (Object)

Edit   History

標準クラス・モジュール > Object > public_methods

obj.public_methods(all = true)

public_methodsメソッドは、レシーバのpublicなメソッドの名前を集めて配列にして返します。レシーバのクラスのメソッドだけでなく、親クラスやインクルードしているモジュールのメソッドも含まれます。引数にfalseを指定すると、レシーバのクラスのメソッドだけが返ります。

Ruby 1.9 Ruby 1.8では配列中のメソッド名は文字列ですが、Ruby 1.9ではシンボルになります。

str = "hello"
methods1 = str.public_methods
methods2 = str.public_methods(false)
p methods1.find {|m| m.to_s == "strip" }
p methods1.find {|m| m.to_s == "object_id" }
p methods2.find {|m| m.to_s == "gsub" }
p methods2.find {|m| m.to_s == "send" }
"strip"
"object_id"
"gsub"
nil           (Ruby 1.8の場合)
:strip
:object_id
:gsub
nil           (Ruby 1.9の場合)

関連項目