class Binstream::Streams::FileReader

Public Class Methods

new(path_or_io, **kwargs) click to toggle source
Calls superclass method Binstream::Streams::Base::new
# File lib/binstream/streams/file_reader.rb, line 6
def initialize(path_or_io, **kwargs)
  if path_or_io.is_a?(::IO)
    super(path_or_io, **kwargs)
  else
    super(File.open(path_or_io, "rb"), **kwargs)
  end
end
open(path, **kwargs) click to toggle source
# File lib/binstream/streams/file_reader.rb, line 14
def self.open(path, **kwargs)
  return new(File.open(path, "rb"), **kwargs)
end

Public Instance Methods

filepath() click to toggle source
# File lib/binstream/streams/file_reader.rb, line 18
def filepath
  @stream.path
rescue => e
  nil
end
peek(length = nil) click to toggle source

OVERRIDING

# File lib/binstream/streams/file_reader.rb, line 30
def peek(length = nil)
  read_size = (length || size)

  if remaining - read_size < 0
    raise StreamOverrunError.new(read_size, remaining, @startpos + @cur_offset)
  end

  resp = @stream.pread(read_size, @startpos + @cur_offset)
  return resp
end
read(length = nil) click to toggle source
# File lib/binstream/streams/file_reader.rb, line 41
def read(length = nil)
  resp = peek(length)
  @cur_offset += resp.bytesize

  return resp
end
stell() click to toggle source
# File lib/binstream/streams/file_reader.rb, line 24
def stell
  @startpos + @cur_offset
end