class SMF::Sequence::RS::PO

Public Class Methods

new(str) click to toggle source
# File lib/smf/io.rb, line 16
def initialize(str) @str, @index = str, 0 end
u2s(u, w) click to toggle source
# File lib/smf/io.rb, line 14
def self.u2s(u, w) u -= 2**w if u > 2**(w-1)-1; u end

Public Instance Methods

eof?() click to toggle source
# File lib/smf/io.rb, line 18
def eof? () rem <= 0 end
getc() click to toggle source
# File lib/smf/io.rb, line 30
def getc
  raise EOFError if rem < 1
  c = @str[@index]
  skip(1)
  c
end
geti(n) click to toggle source
# File lib/smf/io.rb, line 58
def geti(n)
  u = 0
  n.times do
    u <<= 8
    c = getc
    u |= c
  end
  u
end
geti16() click to toggle source
# File lib/smf/io.rb, line 68
def geti16() geti(2) end
geti24() click to toggle source
# File lib/smf/io.rb, line 69
def geti24() geti(3) end
geti32() click to toggle source
# File lib/smf/io.rb, line 70
def geti32() geti(4) end
getl() click to toggle source
# File lib/smf/io.rb, line 48
def getl
  v = 0
  begin
    v <<= 7
    c = getc
    v |= c & 0x7f
  end until (c & 0x80).zero?
  v
end
getn(n) click to toggle source
# File lib/smf/io.rb, line 21
def getn(n)
  raise EOFError if rem < n
  s = @str[@index, n]
  skip(n)
  s
end
rem() click to toggle source
# File lib/smf/io.rb, line 17
def rem() @str.length - @index end
skip(n) click to toggle source
# File lib/smf/io.rb, line 19
def skip(n) @index += n end
to_s() click to toggle source
# File lib/smf/io.rb, line 72
def to_s() @str.dup end