Class: Net::SFTP::Operations::File

Class | Net::SFTP::Operations::File
In: | lib/net/sftp/operations/file.rb
Parent: | Object

A wrapper around an SFTP file handle, that exposes an IO-like interface for interacting with the remote file. All operations are synchronous (blocking), making this a very convenient way to deal with remote files.

A wrapper is usually created via the Net::SFTP::Session#file factory:

      file = sftp.file.open("/path/to/remote")
      puts file.gets
      file.close

### Methods

close eof? gets new pos= print puts read readline stat write

### Attributes

handle | [R] | The SFTP file handle object that this object wraps
pos | [R] | The current position within the remote file
sftp | [R] | A reference to the Net::SFTP::Session instance that drives this wrapper

### Public Class methods

new(sftp, handle)

Creates a new wrapper that encapsulates the given `handle` (such as would be returned by Net::SFTP::Session#open!). The `sftp` parameter must be the same Net::SFTP::Session instance that opened the file.

### Public Instance methods

close()

Closes the underlying file and sets the handle to `nil`. Subsequent operations on this object will fail.

eof?()

Returns true if the end of the file has been encountered by a previous read. Setting the current file position via pos= will reset this flag (useful if the file‘s contents have changed since the EOF was encountered).

gets(sep_string=$/)

Reads up to the next instance of `sep_string` in the stream, and returns the bytes read (including `sep_string`). If `sep_string` is omitted, it defaults to +$/+. If EOF is encountered before any data could be read, gets will return `nil`.

pos=(offset)

Repositions the file pointer to the given offset (relative to the start of the file). This will also reset the EOF flag.

print(*items)

Writes each argument to the stream. If +$+ is set, it will be written after all arguments have been written.

puts(*items)

Writes each argument to the stream, appending a newline to any item that does not already end in a newline. Array arguments are flattened.

read(n=nil)

Reads up to `n` bytes of data from the stream. Fewer bytes will be returned if EOF is encountered before the requested number of bytes could be read. Without an argument (or with a nil argument) all data to the end of the file will be read and returned.

This will advance the file pointer (pos).

readline(sep_string=$/)

Same as gets, but raises EOFError if EOF is encountered before any data could be read.

stat()

Performs an fstat operation on the handle and returns the attribute object (Net::SFTP::Protocol::V01::Attributes, Net::SFTP::Protool::V04::Attributes, or Net::SFTP::Protocol::V06::Attributes, depending on the SFTP protocol version in use).

write(data)

Writes the given data to the stream, incrementing the file position and returning the number of bytes written.

[Validate]