気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Rubyでメソッド一覧、継承クラス一覧、includeしたモジュールを確認するメソッドたち

メソッド一覧を確認するメソッドたち

methods : メソッドの名前を配列で返す。
private_methods : privateなメソッドの名前を配列で返す。
protected_methods : protectedなメソッドの名前を配列で返す。
public_methods : publicなメソッドの名前を配列で返す。
singleton_methods : 特異メソッドの名前を配列で返す。
instance_methods (Module) : メソッドの名前を配列で返す。

例) methodsの使い方

str = "hello"
def str.double
  self + self
end

p str.methods # => [:double, :<=>, :==, :===, :eql?, ・・・・・
#レシーバーのクラスのメソッドのみを返却
p str.methods(false) # =>[:double]
# sendを含むメソッドのみを返却
p.str.methods.grep(/send/) # => [:send, :public_send, :__send__]

includeしたモジュールを確認するメソッド

Module#ancestors
クラスの親クラスを配列にして返却する

p Array.ancestors
[Array, Enumerable, Object, Kernel]
 
class Cat
end
p Cat.ancestors
[Cat, Object, Kernel, BasicObject]    (Ruby 1.9の場合)

継承クラス一覧を確認するメソッド

Module#included_modules
クラスやモジュールがincludeしているモジュールを配列にして返却する

p String.included_modules
[Comparable, Kernel]              (Ruby 1.9の場合)