Procの中身を文字列で得る、それが可能なんだな

Procのソースを取り出すライブラリ:proc_source.rb - Hello, world! - s21g

直リンク

Procの中身が得られるなんて!まさかそんなことがと思ってソースを覗いてみた。なるほどSCRIPT_LINES__でprocの定義開始を見て、irb附属のruby-lexでprocの終わりを知る方法なんだな。
だけど、あれれ、動かないぞ。1.8.6、1.8.7、1.9どれもだめ。

require 'proc_source'
code = proc{ puts "Hello World" }
code.source  # => nil

ソースは御世辞にもきれいとは言えない。特に106行目からがカオス。97行目からはcase使えよと。