5 def initialize(*streams)
12 return buffer if length == 0
13 while buffer.length < length && @streams[@index]
15 buffer << @streams[@index].sysread(length-buffer.length)
20 return buffer if buffer.length == length || buffer.length > 0
21 raise EOFError, "end of file reached", caller
25 @streams.each {|s| s.close}
26 @index = @streams.size - 1 if @index >= @streams.size
31 @streams.all? {|s|s.closed?}
35 @streams.each {|s| s.rewind}
36 self.lineno = @index = 0