&の右側がProcオブジェクトでないときはto_procを呼ぶ。

:fooというシンボルのto_procはcall xするとx.fooの意味になるprocを返す。
例
> :to_s.to_proc.call 1
=> "1"

これでわかる?