class Rake::FtpUploader
Manage the uploading of files to an FTP account.
Attributes
verbose[RW]
Log uploads to standard output when true.
Public Class Methods
connect(path, host, account, password) { |up| ... }
click to toggle source
Create an uploader and pass it to the given block as up
. When
the block is complete, close the uploader.
# File lib/rake/contrib/ftptools.rb, line 93 def connect(path, host, account, password) up = self.new(path, host, account, password) begin yield(up) ensure up.close end end
new(path, host, account, password)
click to toggle source
Create an FTP uploader targeting the directory path
on
host
using the given account and password. path
will be the root path of the uploader.
# File lib/rake/contrib/ftptools.rb, line 106 def initialize(path, host, account, password) @created = Hash.new @path = path @ftp = Net::FTP.new(host, account, password) makedirs(@path) @ftp.chdir(@path) end
Public Instance Methods
close()
click to toggle source
Close the uploader.
# File lib/rake/contrib/ftptools.rb, line 137 def close @ftp.close end
makedirs(path)
click to toggle source
Create the directory path
in the uploader root path.
# File lib/rake/contrib/ftptools.rb, line 115 def makedirs(path) route = [] File.split(path).each do |dir| route << dir current_dir = File.join(route) if @created[current_dir].nil? @created[current_dir] = true $stderr.puts "Creating Directory #{current_dir}" if @verbose @ftp.mkdir(current_dir) rescue nil end end end
upload_files(wildcard)
click to toggle source
Upload all files matching wildcard
to the uploader's root
path.
# File lib/rake/contrib/ftptools.rb, line 130 def upload_files(wildcard) FileList.glob(wildcard).each do |fn| upload(fn) end end
Private Instance Methods
upload(file)
click to toggle source
Upload a single file to the uploader's root path.
# File lib/rake/contrib/ftptools.rb, line 144 def upload(file) $stderr.puts "Uploading #{file}" if @verbose dir = File.dirname(file) makedirs(dir) @ftp.putbinaryfile(file, file) unless File.directory?(file) end