前田です。

proc/lambda/Proc.newってイテレータ呼び出しじゃない
時は、procを呼んでいるメソッドをイテレータ呼び出し
した時にそのイテレータをオブジェクト化してくれるん
ですね。

class Test
  def foo
    @proc = proc
  end

  def call
    @proc.call
  end
end

test = Test.new
test.foo {
  print "abc\n"
}
test.call

Cでadd_hookを書いた時にrubyでも同じことができるのでは、
と思って、試したらできたので小躍りしてしまいました:-)
とても便利なのですが、これは保証された動作でしょうか?
# マニュアルにないのでちょっと不安だったりします。

-- 
前田 修吾 <shugo / po.aianet.ne.jp>