突然Rubyのクラス階層を厳密に知りたくなった。Rubyリファレンスマニュアルはアテにならないので、せっかくなのでRubyに訊いてみた。 Ruby 1.8.7の場合。 RUBY_VERSION # => "1.8.7" # まず、スーパークラス=>サブクラスのHashを作成する。 table = {}.tap{|h| ObjectSpace.each_object(Class){|c| (h[c.superclass] ||= []) << c}} table[nil] # => [Object] table[Integer] # => [Bignum, Fixnum] table[NilClass] # => nil def class_hierarchy(table, indent=0, sup=nil) excepts = [Exception] # 詳細を省略するクラス retur