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
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
Returns the value of property with the given key
. If
key
is not a symbol, it will be converted to a symbol before
lookup.
# File lib/net/sftp/request.rb, line 50 def [](key) properties[key.to_sym] end
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.
# File lib/net/sftp/request.rb, line 56 def []=(key, value) properties[key.to_sym] = value end
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.
# File lib/net/sftp/request.rb, line 63 def pending? session.pending_requests.key?(id) end
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.
# File lib/net/sftp/request.rb, line 71 def wait session.loop { pending? } self end