class Rucc::FileIOList
Public Class Methods
new(file)
click to toggle source
@param [FileIO] file
# File lib/rucc/file_io_list.rb, line 8 def initialize(file) @files = [file] @stashed = [] # buffer for stashed files end
Public Instance Methods
current()
click to toggle source
@return [FileIO]
# File lib/rucc/file_io_list.rb, line 15 def current @files.last end
readc()
click to toggle source
@return [Char, NilClass]
# File lib/rucc/file_io_list.rb, line 20 def readc while true c = current.readc if !c.nil? # not EOF return c end if @files.size == 1 return c end f = @files.pop f.close next end raise "Must not reach here!" end
stream_depth()
click to toggle source
# File lib/rucc/file_io_list.rb, line 52 def stream_depth @files.size end
stream_stash(files)
click to toggle source
@param [<FileIO>] files
# File lib/rucc/file_io_list.rb, line 43 def stream_stash(files) @stashed.push(@files) @files = files end
stream_unstash()
click to toggle source
# File lib/rucc/file_io_list.rb, line 48 def stream_unstash @files = @stashed.pop end
unreadc(c)
click to toggle source
@param [Char, NilClass]
# File lib/rucc/file_io_list.rb, line 38 def unreadc(c) current.unreadc(c) end