class Gio::InputStream

Public Class Methods

open(*arguments) { |input_stream| ... } click to toggle source
# File gio2/lib/gio2/input-stream.rb, line 20
def open(*arguments)
  input_stream = new(*arguments)
  return input_stream unless block_given?

  begin
    yield(input_stream)
  ensure
    input_stream.close unless input_stream.closed?
  end
end

Public Instance Methods

read(size=nil) click to toggle source
# File gio2/lib/gio2/input-stream.rb, line 33
def read(size=nil)
  if size.nil?
    all = "".force_encoding("ASCII-8BIT")
    buffer_size = 8192
    buffer = " ".force_encoding("ASCII-8BIT") * buffer_size
    loop do
      _, read_bytes = read_all_raw_compatible(buffer)
      all << buffer.byteslice(0, read_bytes)
      break if read_bytes != buffer_size
    end
    all
  else
    buffer = " " * size
    read_bytes = read_raw_compatible(buffer)
    buffer.replace(buffer.byteslice(0, read_bytes))
    buffer
  end
end
Also aliased as: read_raw
read_all(size) click to toggle source
# File gio2/lib/gio2/input-stream.rb, line 53
def read_all(size)
  buffer = " " * size
  _, read_bytes = read_all_raw_compatible(buffer)
  buffer.replace(buffer.byteslice(0, read_bytes))
  buffer
end
Also aliased as: read_all_raw
read_all_raw(size)
Alias for: read_all
read_raw(size=nil)
Alias for: read