class HrrRbSftp::Protocol
This class implements SFTP protocol operations.
Public Class Methods
extension_pairs(version)
click to toggle source
@return [Array] A list of extension-pair that the library supports.
# File lib/hrr_rb_sftp/protocol.rb, line 19 def self.extension_pairs version version_class = const_get(:"Version#{version}") if version_class.const_defined?(:Extensions) version_class::Extensions.extension_pairs else [] end end
new(version, logger: nil)
click to toggle source
@param version [Integer] Protocol
version. @param logger [Logger] Logger.
# File lib/hrr_rb_sftp/protocol.rb, line 32 def initialize version, logger: nil self.logger = logger @context = Hash.new @context[:version] = version @context[:handles] = Hash.new @packets = self.class.const_get(:"Version#{version}")::Packets.new(@context, logger: logger) end
versions()
click to toggle source
@return [Array] A list of SFTP protocol versions that the library supports.
# File lib/hrr_rb_sftp/protocol.rb, line 12 def self.versions constants.select{|c| c.to_s.start_with?("Version")}.map{|c| const_get(c)}.map{|klass| klass::PROTOCOL_VERSION} end
Public Instance Methods
close_handles()
click to toggle source
Closes opened and not closed handles.
# File lib/hrr_rb_sftp/protocol.rb, line 54 def close_handles log_info { "closing handles" } @context[:handles].each do |k, v| v.close rescue nil end @context[:handles].clear log_info { "handles closed" } end
respond_to(request_payload)
click to toggle source
Responds to a request.
@param request_payload [String] Request payload. @return [String] Response payload that is encoded packet generated by each SFTP protocol version and each request responder.
# File lib/hrr_rb_sftp/protocol.rb, line 47 def respond_to request_payload @packets.respond_to request_payload end