Class: Rake::FtpUploader
- Inherits:
-
Object
- Object
- Rake::FtpUploader
- Defined in:
- lib/rake/contrib/ftptools.rb
Overview
Manage the uploading of files to an FTP account.
Instance Attribute Summary collapse
-
#verbose ⇒ Object
Log uploads to standard output when true.
Class Method Summary collapse
-
.connect(path, host, account, password) ⇒ Object
Create an uploader and pass it to the given block as
up
.
Instance Method Summary collapse
-
#close ⇒ Object
Close the uploader.
-
#initialize(path, host, account, password) ⇒ FtpUploader
constructor
Create an FTP uploader targeting the directory
path
onhost
using the given account and password. -
#makedirs(path) ⇒ Object
Create the directory
path
in the uploader root path. -
#upload_files(wildcard) ⇒ Object
Upload all files matching
wildcard
to the uploader’s root path.
Constructor Details
#initialize(path, host, account, password) ⇒ FtpUploader
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.
106 107 108 109 110 111 112 |
# 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 |
Instance Attribute Details
#verbose ⇒ Object
Log uploads to standard output when true.
88 89 90 |
# File 'lib/rake/contrib/ftptools.rb', line 88 def verbose @verbose end |
Class Method Details
.connect(path, host, account, password) ⇒ Object
Create an uploader and pass it to the given block as up
. When the block is complete, close the uploader.
93 94 95 96 97 98 99 100 |
# 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 |
Instance Method Details
#close ⇒ Object
Close the uploader.
137 138 139 |
# File 'lib/rake/contrib/ftptools.rb', line 137 def close @ftp.close end |
#makedirs(path) ⇒ Object
Create the directory path
in the uploader root path.
115 116 117 118 119 120 121 122 123 124 125 126 |
# 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 |