ObjectSpace.each_object(Class) do |klass| puts klass.name end 仕組み ObjectSpace#each_object(klass)は、引数で指定したklassとObject#kind_of?(mod)の関係にある全てのオブジェクトに対して繰り返し処理を行うモジュール関数。 Object#kind_of?(mod)は、以下の条件でtrueを返す オブジェクトがmodあるいはそのサブクラスのインスタンスである オブジェクトがmodをインクルードしたクラスかそのサブクラスのインスタンスである 'str'.kind_of?(String) # => true 100.kind_of?(Fixnum) # => true [].kind_of?(Array) # => true # Fixnum < Integer < Numeric <