names=with_object
visibility=public
kind=defined

--- with_object(obj) -> Enumerator
--- with_object(obj) {|(*args), memo_obj| ... } -> object

繰り返しの各要素に obj を添えてブロックを繰り返し、obj を返り値として返します。

obj には任意のオブジェクトを渡すことができます。

ブロックが渡されなかった場合は、上で説明した繰り返しを実行し、
最後に obj を返す [[c:Enumerator]] を返します。

==== 例
  # 0,1,2 と呼びだす enumeratorを作る
  to_three = Enumerator.new do |y|
    3.times do |x|
      y << x
    end
  end
  
  to_three_with_string = to_three.with_object("foo")
  to_three_with_string.each do |x,string|
    puts "#{string}: #{x}"
  end
  # => foo:0
  # => foo:1
  # => foo:2

@param obj 繰り返しの各要素に添えて渡されるオブジェクト
@see [[m:Enumerable#each_with_object]]

