class DRbQS::Transfer::Client
Attributes
directory[R]
local[R]
sftp[R]
Public Class Methods
get()
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 63 def get @transfer end
new(server_directory, same_host, host, user)
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 8 def initialize(server_directory, same_host, host, user) unless Pathname.new(server_directory).absolute? raise ArgumentError, "Directory of server must be absolute." end @directory = server_directory @same_host = same_host @local = DRbQS::Transfer::Client::Local.new(@directory) if host && user @sftp = DRbQS::Transfer::Client::SFTP.new(user, host, @directory) else @sftp = nil end end
set(transfer)
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 67 def set(transfer) @transfer = transfer end
transfer_to_server(files)
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 71 def transfer_to_server(files) if files && @transfer begin @transfer.transfer(files) rescue Exception => err err_new = err.class.new("#{err.to_s} (#{err.class}); Can not send file: #{files.join(", ")}") err_new.set_backtrace(err.backtrace) raise err_new end else raise "Server does not set transfer settings. Can not send file: #{files.join(", ")}" end end
Public Instance Methods
download(files, readonly = nil)
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 39 def download(files, readonly = nil) download_files = nil if @same_host begin if readonly download_files = files else download_files = @local.download(files) end rescue end end if !download_files unless @sftp raise "SFTP is not prepared." end download_files = @sftp.download(files) end download_files end
transfer(files)
click to toggle source
# File lib/drbqs/utility/transfer/transfer_client.rb, line 22 def transfer(files) transfered = false if @same_host begin @local.transfer(files) transfered = true rescue end end if !transfered unless @sftp raise "Can not transfer files." end @sftp.transfer(files) end end