Class: Seafoam::Binary::IOBinaryReader
- Inherits:
-
Object
- Object
- Seafoam::Binary::IOBinaryReader
- Defined in:
- lib/seafoam/binary/io_binary_reader.rb
Overview
An adapter to read binary values from an IO stream.
Instance Method Summary collapse
- #eof? ⇒ Boolean
-
#initialize(io) ⇒ IOBinaryReader
constructor
A new instance of IOBinaryReader.
- #peek_sint8 ⇒ Object
- #read_bytes(length) ⇒ Object
- #read_float32 ⇒ Object
- #read_float64 ⇒ Object
- #read_sint16 ⇒ Object
- #read_sint32 ⇒ Object
- #read_sint64 ⇒ Object
- #read_sint8 ⇒ Object
- #read_uint16 ⇒ Object
- #read_uint8 ⇒ Object
- #read_utf8(length) ⇒ Object
- #skip(count) ⇒ Object
- #skip_float32(count = 1) ⇒ Object
- #skip_float64(count = 1) ⇒ Object
- #skip_int16(count = 1) ⇒ Object
- #skip_int32(count = 1) ⇒ Object
- #skip_int64(count = 1) ⇒ Object
- #skip_int8(count = 1) ⇒ Object
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
83 84 85 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 83 def eof? @io.eof? end |
#peek_sint8 ⇒ Object
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_float32 ⇒ Object
21 22 23 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 21 def read_float32 @io.read(4).unpack1('g') end |
#read_float64 ⇒ Object
17 18 19 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 17 def read_float64 @io.read(8).unpack1('G') end |
#read_sint16 ⇒ Object
33 34 35 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 33 def read_sint16 @io.read(2).unpack1('s>') end |
#read_sint32 ⇒ Object
29 30 31 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 29 def read_sint32 @io.read(4).unpack1('l>') end |
#read_sint64 ⇒ Object
25 26 27 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 25 def read_sint64 @io.read(8).unpack1('q>') end |
#read_sint8 ⇒ Object
41 42 43 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 41 def read_sint8 @io.read(1).unpack1('c') end |
#read_uint16 ⇒ Object
37 38 39 |
# File 'lib/seafoam/binary/io_binary_reader.rb', line 37 def read_uint16 @io.read(2).unpack1('S>') end |
#read_uint8 ⇒ Object
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 |