each 以外のメソッド、つまり each_byte 等も enumerate できる ようにするためのラッパークラス。
enumerator.soも参照してください。
Enumerable::Enumerator.new(obj, method = :each, *args)
obj オブジェクトについて、 each の代わりに method という 名前のメソッドを使って繰り返すオブジェクトを生成して返す。 args を指定すると、 method の呼び出し時に渡される。
例: str = "xyz" enum = Enumerable::Enumerator.new(str, :each_byte) a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]