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 targetting 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 targetting the directory path
on host
using the given account and password. path
will be the root path of the uploader.
108 109 110 111 112 113 114 |
# File 'lib/rake/contrib/ftptools.rb', line 108 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.
90 91 92 |
# File 'lib/rake/contrib/ftptools.rb', line 90 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.
95 96 97 98 99 100 101 102 |
# File 'lib/rake/contrib/ftptools.rb', line 95 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.
139 140 141 |
# File 'lib/rake/contrib/ftptools.rb', line 139 def close @ftp.close end |
#makedirs(path) ⇒ Object
Create the directory path
in the uploader root path.
117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/rake/contrib/ftptools.rb', line 117 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 puts "Creating Directory #{current_dir}" if @verbose @ftp.mkdir(current_dir) rescue nil end end end |
#upload_files(wildcard) ⇒ Object
Upload all files matching wildcard
to the uploader’s root path.
132 133 134 135 136 |
# File 'lib/rake/contrib/ftptools.rb', line 132 def upload_files(wildcard) Dir[wildcard].each do |fn| upload(fn) end end |