Class: Seafoam::Binary::IOBinaryReader

Inherits:
Object
  • Object
show all
Defined in:
lib/seafoam/binary/io_binary_reader.rb

Overview

An adapter to read binary values from an IO stream.

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ IOBinaryReader

Returns a new instance of IOBinaryReader.



5
6
7
# File 'lib/seafoam/binary/io_binary_reader.rb', line 5

def initialize(io)
  @io = io
end

Instance Method Details

#eof?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/seafoam/binary/io_binary_reader.rb', line 83

def eof?
  @io.eof?
end

#peek_sint8Object



49
50
51
52
53
# File 'lib/seafoam/binary/io_binary_reader.rb', line 49

def peek_sint8
  byte = @io.read(1).unpack1('c')
  @io.ungetbyte byte
  byte
end

#read_bytes(length) ⇒ Object



13
14
15
# File 'lib/seafoam/binary/io_binary_reader.rb', line 13

def read_bytes(length)
  @io.read(length)
end

#read_float32Object



21
22
23
# File 'lib/seafoam/binary/io_binary_reader.rb', line 21

def read_float32
  @io.read(4).unpack1('g')
end

#read_float64Object



17
18
19
# File 'lib/seafoam/binary/io_binary_reader.rb', line 17

def read_float64
  @io.read(8).unpack1('G')
end

#read_sint16Object



33
34
35
# File 'lib/seafoam/binary/io_binary_reader.rb', line 33

def read_sint16
  @io.read(2).unpack1('s>')
end

#read_sint32Object



29
30
31
# File 'lib/seafoam/binary/io_binary_reader.rb', line 29

def read_sint32
  @io.read(4).unpack1('l>')
end

#read_sint64Object



25
26
27
# File 'lib/seafoam/binary/io_binary_reader.rb', line 25

def read_sint64
  @io.read(8).unpack1('q>')
end

#read_sint8Object



41
42
43
# File 'lib/seafoam/binary/io_binary_reader.rb', line 41

def read_sint8
  @io.read(1).unpack1('c')
end

#read_uint16Object



37
38
39
# File 'lib/seafoam/binary/io_binary_reader.rb', line 37

def read_uint16
  @io.read(2).unpack1('S>')
end

#read_uint8Object



45
46
47
# File 'lib/seafoam/binary/io_binary_reader.rb', line 45

def read_uint8
  @io.readbyte
end

#read_utf8(length) ⇒ Object



9
10
11
# File 'lib/seafoam/binary/io_binary_reader.rb', line 9

def read_utf8(length)
  read_bytes(length).force_encoding Encoding::UTF_8
end

#skip(count) ⇒ Object



79
80
81
# File 'lib/seafoam/binary/io_binary_reader.rb', line 79

def skip(count)
  @io.seek count, IO::SEEK_CUR
end

#skip_float32(count = 1) ⇒ Object



59
60
61
# File 'lib/seafoam/binary/io_binary_reader.rb', line 59

def skip_float32(count = 1)
  skip count * 4
end

#skip_float64(count = 1) ⇒ Object



55
56
57
# File 'lib/seafoam/binary/io_binary_reader.rb', line 55

def skip_float64(count = 1)
  skip count * 8
end

#skip_int16(count = 1) ⇒ Object



71
72
73
# File 'lib/seafoam/binary/io_binary_reader.rb', line 71

def skip_int16(count = 1)
  skip count * 2
end

#skip_int32(count = 1) ⇒ Object



67
68
69
# File 'lib/seafoam/binary/io_binary_reader.rb', line 67

def skip_int32(count = 1)
  skip count * 4
end

#skip_int64(count = 1) ⇒ Object



63
64
65
# File 'lib/seafoam/binary/io_binary_reader.rb', line 63

def skip_int64(count = 1)
  skip count * 8
end

#skip_int8(count = 1) ⇒ Object



75
76
77
# File 'lib/seafoam/binary/io_binary_reader.rb', line 75

def skip_int8(count = 1)
  skip count
end