In article <200312100917.hBA9HuAc013516 / sharui.nakada.kanuma.tochigi.jp>,
  nobu.nakada / nifty.ne.jp writes:

> 合わせました。他に何かありますか。

今の所、見つかっていません... 

いや、今見つかりました。

% echo -n a > 1         
% ruby -e 'f = open("1")
p f.read(2)
p f.read
p f.read'
"a"
nil
nil

% ruby -rstringio -e 's = StringIO.new("a")
p s.read(2)
p s.read
p s.read
'
"a"
""
nil

> うーん、それって保証された動作?

保証されているかどうかではなく保証するかどうかだと思います。
まぁ、保証しなくても構わないんですが。

ちなみに、こんな感じのを想定しています。

  class StringIO
    def to_tempfile
      t = Tempfile.new("xxx")
      t << self.string
      t.seek self.pos
      if self.string.length <= self.pos
        t.read unless self.read(0)
      end
      t
    end
  end
-- 
[田中 哲][たなか あきら][Tanaka Akira]