<<(s)
click to toggle source
def << (s)
do_write(s)
self
end
close()
click to toggle source
def close
flush rescue nil
sysclose
end
each(eol=$/)
click to toggle source
def each(eol=$/)
while line = self.gets(eol)
yield line
end
end
each_byte()
click to toggle source
def each_byte
while c = getc
yield(c)
end
end
each_line(eol=$/)
click to toggle source
eof()
click to toggle source
eof?()
click to toggle source
def eof?
fill_rbuff if !@eof && @rbuffer.empty?
@eof && @rbuffer.empty?
end
flush()
click to toggle source
def flush
osync = @sync
@sync = true
do_write ""
@sync = osync
end
getc()
click to toggle source
def getc
c = read(1)
c ? c[0] : nil
end
gets(eol=$/)
click to toggle source
def gets(eol=$/)
idx = @rbuffer.index(eol)
until @eof
break if idx
fill_rbuff
idx = @rbuffer.index(eol)
end
if eol.is_a?(Regexp)
size = idx ? idx+$&.size : nil
else
size = idx ? idx+eol.size : nil
end
consume_rbuff(size)
end
print(*args)
click to toggle source
def print(*args)
s = ""
args.each{ |arg| s << arg.to_s }
do_write(s)
nil
end
printf(s, *args)
click to toggle source
def printf(s, *args)
do_write(s % args)
nil
end
puts(*args)
click to toggle source
def puts(*args)
s = ""
if args.empty?
s << "\n"
end
args.each{|arg|
s << arg.to_s
if $/ && /\n\z/ !~ s
s << "\n"
end
}
do_write(s)
nil
end
read(size=nil, buf=nil)
click to toggle source
def read(size=nil, buf=nil)
if size == 0
if buf
buf.clear
else
buf = ""
end
return @eof ? nil : buf
end
until @eof
break if size && size <= @rbuffer.size
fill_rbuff
end
ret = consume_rbuff(size) || ""
if buf
buf.replace(ret)
ret = buf
end
(size && ret.empty?) ? nil : ret
end
readchar()
click to toggle source
def readchar
raise EOFError if eof?
getc
end
readline(eol=$/)
click to toggle source
def readline(eol=$/)
raise EOFError if eof?
gets(eol)
end
readlines(eol=$/)
click to toggle source
def readlines(eol=$/)
ary = []
while line = self.gets(eol)
ary << line
end
ary
end
readpartial(maxlen, buf=nil)
click to toggle source
def readpartial(maxlen, buf=nil)
if maxlen == 0
if buf
buf.clear
else
buf = ""
end
return @eof ? nil : buf
end
if @rbuffer.empty?
begin
return sysread(maxlen, buf)
rescue Errno::EAGAIN
retry
end
end
ret = consume_rbuff(maxlen)
if buf
buf.replace(ret)
ret = buf
end
raise EOFError if ret.empty?
ret
end
ungetc(c)
click to toggle source
def ungetc(c)
@rbuffer[0,0] = c.chr
end
write(s)
click to toggle source
def write(s)
do_write(s)
s.length
end