青山です。

On Thu, May 30, 2002 at 03:45:57PM +0900,
 Tanaka Akira wrote:

> * (HTTP server で)出力を StringIO/Tempfile に貯めた後、Content-Length:
>   の値を求めたいとか、

必要と感じた理由をあまり書かなかったので混乱を起こしてしまいましたが、
理由はこれに近いです。

Content-Length は渡されるデータ全体のサイズなので、個々のサイズは、そ
れぞれに調べる必要がある、というのが正解(?)でした。

cgi["upload_file_1"].stat.size という感じです。

これを StringIO に置き換えた場合、#stat.size が無いので、使えなくなり
ます。一方、StringIO#size はあるので、cgi["upload_file_1"].size とする
と、今度は Tempfile の時に #size が無いので動かなくなります。

という事で、File#size か、StringIO#stat.size のどちらか、となるわけで
すが、File#size は無いが、IO#stat.size はある、つまり、それは許容され
ているのだろうから、では、StringIO に #stat.size かな、と思ったわけです。

もっとも、IO#stat もあまり適切では無いのかも、とは感じてはいましたが。
IO#stat の実体も file.c にありますしね。

そのような事でしたので、私としては、File#size が許されるなら、それで十
分です。


-- 
青山 和光 Wakou Aoyama  <wakou / ruby-lang.org>