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