class Braingasm::InputBuffer

Public Class Methods

new(source) click to toggle source
# File lib/braingasm/io.rb, line 4
def initialize(source)
  @source = source
  @buffer = StringIO.new
end

Public Instance Methods

eof?() click to toggle source
# File lib/braingasm/io.rb, line 26
def eof?
  return true if @buffer.closed?
  return false unless @buffer.eof?

  s = @source.gets
  if s
    @buffer.string = s
    false
  else
    @buffer.close
    true
  end
end
getbyte() click to toggle source
# File lib/braingasm/io.rb, line 18
def getbyte
  @buffer.getbyte unless eof?
end
gets() click to toggle source
# File lib/braingasm/io.rb, line 22
def gets
  @buffer.gets unless eof?
end
ungetc(s) click to toggle source
# File lib/braingasm/io.rb, line 9
def ungetc(s)
  case s
  when String
    @buffer.ungetc(s) if s.chomp.size > 0
  when Integer
    @buffer.ungetc(s) unless s == 10
  end
end