xftp
Unified interface for ftp/sftp. Protocol is selected by url scheme.
Installation
gem 'xftp'or
$ gem install xftp
Usage examples
Basic example:
XFTP.start('sftp://hostname', credentials: { login: 'login', password: 'pass' }) do |x|
x.chdir 'remote-src-path'
x.mkdir 'new-remote-dir'
x.rmdir 'dir-to-remove'
x.each_file do |file|
x.download file
x.move file, to: File.join('remote-archive-path', file)
end
endConnection as anonymous with emtpy password, checking remote dir existence, globbing and getting StringIO's:
XFTP.start('ftp://hostname') do |x|
x.mkdir 'some-dir' unless x.exist? 'some-dir'
x.glob '*.csv' do |filename|
io = x.get filename
end
endExample using each_io:
XFTP.start('sftp://hostname', credentials: { login: 'login', password: 'password' }) do |x|
x.chdir 'some-dir'
x.each_io do |filename, io|
# do smth with it
end
endWithout block argument (note that you shouldn't refer to local scope objects):
XFTP.start('sftp://hostname', credentials: credentials)
chdir 'blahblah'
each_file do |filename|
download filename, to: File.join('local-dir', filename)
move filename, to: File.join('remote-archive-path', filename)
end
endDevelopment
After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
- Fork it ( https://github.com/[my-github-username]/xftp/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request