class LittleFinger::ServerFile
Attributes
folder_name[R]
ftp_site[R]
host[R]
password[R]
username[R]
Public Class Methods
fetch(file_name)
click to toggle source
Retrieves zipped files from the avatax servers @param file_name [String] Name of file to retrieve
# File lib/little_finger/server_file.rb, line 11 def self.fetch(file_name) settings = LittleFinger::Configuration.configuration[:avatax][:ftp] obj = LittleFinger::ServerFile.new(settings[:username], settings[:password], settings[:ftp_site], file_name) obj.fetch end
new(username, password, ftp_site, file_name)
click to toggle source
# File lib/little_finger/server_file.rb, line 17 def initialize(username, password, ftp_site, file_name) @username = username @password = password @ftp_site = ftp_site portions = @ftp_site.split("/", 2) @host = portions[0] @folder_name = "" @folder_name = portions[1] if portions.count > 1 @ftp_iface = nil @file_name = file_name end
Public Instance Methods
connect()
click to toggle source
# File lib/little_finger/server_file.rb, line 35 def connect @ftp_iface = ftp = Net::FTP.new(@host) # This HAS to be done when we are connecting to the Windows FTP server for some reason. @ftp_iface.passive = true @ftp_iface.login(@username, @password) @ftp_iface.chdir(@folder_name) if @folder_name.present? end
fetch()
click to toggle source
# File lib/little_finger/server_file.rb, line 29 def fetch() connect zip_file = retrieve_file(@file_name) unzip(zip_file) end
retrieve_file(filename)
click to toggle source
# File lib/little_finger/server_file.rb, line 43 def retrieve_file(filename) out_file ="/tmp/#{filename}" @ftp_iface.getbinaryfile(filename, out_file) out_file end
unzip(zip_file)
click to toggle source
# File lib/little_finger/server_file.rb, line 49 def unzip(zip_file) file_names = [] zip_obj = Zip::File.open(zip_file) zip_obj.each do |one_file| file_name = File.join(File.dirname(zip_file), one_file.name) # force override one_file.extract(file_name) { true } file_names << file_name end file_names end