Rubyリファレンス: Home

methods (Object)

Edit   History

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

obj.methods(all = true)

methodsメソッドは、レシーバが持っているメソッドの名前を集めて配列にして返します。配列に含まれるのはpublicなメソッドかprotectedなメソッドです。privateなメソッドは含まれません。レシーバのクラスのメソッドだけでなく、親クラスやインクルードしているモジュールのメソッドも含まれます。

配列には特異メソッドも含まれます。引数にfalseを指定すると、singleton_methodsメソッドにfalseを渡したときと同じく、特異メソッドだけの配列が返ります。

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

str = "hello"
def str.double
  self + self
end
 
p str.methods
p str.methods(false)
["%", "select", "[]=", "inspect", "<<", "each_byte", (中略)"unpack"]
["double"]   (Ruby 1.8の場合)
[:double, :<=>, :==, :===, :eql?, :hash, :casecmp, :+, (中略) :__send__]
[:double]    (Ruby 1.9の場合)

関連項目