class Net::SFTP::Request

  1. lib/net/sftp/request.rb
Parent: SFTP

Encapsulates a single active SFTP request. This is instantiated automatically by the Net::SFTP::Session class when an operation is executed.

request = sftp.open("/path/to/file")
puts request.pending? #-> true
request.wait
puts request.pending? #-> false
result = request.response

Included modules

  1. Constants::PacketTypes

Attributes

callback [R]

The callback (if any) associated with this request. When the response is recieved for this request, the callback will be invoked.

id [R]

The SFTP packet identifier for this request

properties [R]

The hash of properties associated with this request. Properties allow programmers to associate arbitrary data with a request, making state machines richer.

response [R]

The response that was received for this request (see Net::SFTP::Response)

session [R]

The Net::SFTP session object that is servicing this request

type [R]

The type of this request (e.g., :open, :symlink, etc.)

Public Instance methods

[] (key)

Returns the value of property with the given key. If key is not a symbol, it will be converted to a symbol before lookup.

[show source]
# File lib/net/sftp/request.rb, line 50
def [](key)
  properties[key.to_sym]
end
[]= (key, value)

Sets the value of the property with name key to value. If key is not a symbol, it will be converted to a symbol before lookup.

[show source]
# File lib/net/sftp/request.rb, line 56
def []=(key, value)
  properties[key.to_sym] = value
end
pending? ()

Returns true if the request is still waiting for a response from the server, and false otherwise. The SSH event loop must be run in order for a request to be processed; see wait.

[show source]
# File lib/net/sftp/request.rb, line 63
def pending?
  session.pending_requests.key?(id)
end
wait ()

Waits (blocks) until the server responds to this packet. If prior SFTP packets were also pending, they will be processed as well (since SFTP packets are processed in the order in which they are received by the server). Returns the request object itself.

[show source]
# File lib/net/sftp/request.rb, line 71
def wait
  session.loop { pending? }
  self
end