Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

書籍 Ruby Cookbook | 自身で定義したメソッドのリストを取得

パンくず

Ruby Cookbook
自身で定義したメソッドのリストを取得

概要

自身で定義したメソッドのリストを取得

内容

各アクセスレベルごとのメソッドリストは
XXXX_methods(false)
で取得可能です。
※XXXXはアクセスレベル

ただし、methodsの自メソッド取得版はないため
独自実装します。

サンプルコード

# encoding: Windows-31J
require "pp"

class Object
  def my_methods
    return self.public_methods(false) + self.protected_methods(false) + self.private_methods(false)
  end
end

class Hoge
end

class ExtendedHoge < Hoge
  public
  def public_instance_hoge
  end
  
  protected
  def protected_instance_hoge
  end
  
  private
  def private_instance_hoge
  end
  
  def ExtendedHoge.class_hoge
  end
end

extended_hoge = ExtendedHoge.new

pp extended_hoge.my_methods.sort
pp extended_hoge.public_methods(false).sort
pp extended_hoge.protected_methods(false).sort
pp extended_hoge.private_methods(false).sort

出力

[:private_instance_hoge, :protected_instance_hoge, :public_instance_hoge]
[:public_instance_hoge]
[:protected_instance_hoge]
[:private_instance_hoge]