In article <20020530003735.GA5714%wakou / ruby-lang.org>,
  Wakou Aoyama <wakou / ruby-lang.org> writes:

> そこで気が付いたのですが、String を IO のように使いたい、というのとは
> 逆に、IO のかわりに String を使いたい、という場合には、StringIO#size
> ではなく、StringIO#stat.size が欲しいように思います。

% ruby -e 'open("tst", "w") {|f| f.print "a"; p f.stat.size}'
0

というように IO の場合には buffering を考慮しなければならないことをご
存知でしょうか。

class IO
  def size
    flush
    stat.size
  end
end

というような IO#size を加える方がよいと思います。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)