Proc#binding

Proc#bindingは、そのProcに関連づけられたBindingオブジェクトを返します。
詳しくはri Proc#binding参照。以下のサンプルも、ri Proc#bindingを元にしています。

def rubyco(x, y)
  x += 1
  y += 2
  proc { }
end

pc = rubyco(0, 0)
p eval("[x, y]", pc.binding)  #=> [1, 2]
p eval("[x, y]", pc)          #=> [1, 2]

確かにProcとBindingは同一視できますね。