概要
ObjectSpace#each_object {|object| ...} -> Integer
ObjectSpace#each_object(klass) {|object| ...} -> Integer
ObjectSpace#each_object -> Enumerator
ObjectSpace#each_object(klass) -> Enumerator
詳細
指定された klass と Object#kind_of? の関係にある全ての オブジェクトに対して繰り返す。
引数省略時はすべてのオブジェクトを対象とする。
戻り値は繰り返し数。
サンプルコード
require 'tbpgr_utils' class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end end tanaka = Person.new('tanaka', 23) suzuki = Person.new('suzuki', 33) bulk_puts_eval binding, <<-EOS ObjectSpace.each_object ObjectSpace.each_object {} ObjectSpace.each_object(Person) ObjectSpace.each_object(Person) {} EOS ObjectSpace.each_object(Person) { |e|p e.inspect } __END__ 下記はTbpgrUtils gemの機能 bulk_puts_eval https://rubygems.org/gems/tbpgr_utils https://github.com/tbpgr/tbpgr_utils
出力
ObjectSpace.each_object # => #<Enumerator: ObjectSpace:each_object(false)> ObjectSpace.each_object {} # => 26943 ObjectSpace.each_object(Person) # => #<Enumerator: ObjectSpace:each_object(Person)> ObjectSpace.each_object(Person) {} # => 2 "#<Person:0x00000600be0310 @name=\"suzuki\", @age=33>" "#<Person:0x00000600be0388 @name=\"tanaka\", @age=23>"