class
PG::CopyResult
- PG::CopyResult
- IO
- Reference
- Object
Overview
IO object obtained through PG::Connection.exec_copy.
Defined in:
pg/copy_result.crConstructors
Instance Method Summary
-
#close : Nil
Closes this
IO. -
#closed? : Bool
Returns
trueif thisIOis closed. -
#read(slice : Bytes) : Int32
Reads at most slice.size bytes from this
IOinto slice. -
#remaining_row_size : Int32
Returns the number of remaining bytes in the current row.
-
#write(slice : Bytes) : Nil
Writes the contents of slice into this
IO.
Constructor Detail
Instance Method Detail
Closes this IO.
IO defines this is a no-op method, but including types may override.
Returns true if this IO is closed.
IO defines returns false, but including types may override.
Reads at most slice.size bytes from this IO into slice.
Returns the number of bytes read, which is 0 if and only if there is no
more data to read (so checking for 0 is the way to detect end of file).
io = IO::Memory.new "hello"
slice = Bytes.new(4)
io.read(slice) # => 4
slice # => Bytes[104, 101, 108, 108]
io.read(slice) # => 1
slice # => Bytes[111, 101, 108, 108]
io.read(slice) # => 0
Returns the number of remaining bytes in the current row. Returns 0 the are no more rows to be read. This can be used to allocate the precise amount of memory to read a complete row.
size = io.remaining_row_size
if size != 0
row = Bytes.new(size)
io.read(row)
# Process the row.
end
Writes the contents of slice into this IO.
io = IO::Memory.new
slice = Bytes.new(4) { |i| ('a'.ord + i).to_u8 }
io.write(slice)
io.to_s # => "abcd"