豊福@パパイヤです。
 
私
>> $gets = proc { |f| f.gets }
>>   while line = $gets.call(file)
>   一瞬オブジェクトとメソッドの位置が逆?と妙な気分に
> なりました。
>   $gets = proc { レシーバー.gets }
>   while line = file.some_method($gets)
> みたいな書き方ってないのでしょうか。

  単に順番を逆にしただけですが

  class Object
    def doproc(prc)
      prc.call(self)
    end
  end

  $gets = proc { |rcver| rcver.gets }
  while line = file.doproc($gets)

  なんとなくこの順番の方が落ちつきます。
---
			豊福@パパイヤ
			unbound / papaya.juice.or.jp
			toyofuku / juice.or.jp