Module: XFTP

Defined in:
lib/xftp.rb,
lib/xftp/client.rb,
lib/xftp/errors.rb,
lib/xftp/version.rb,
lib/configuration.rb,
lib/xftp/session/ftp.rb,
lib/xftp/session/base.rb,
lib/xftp/session/sftp.rb,
lib/xftp/helpers/logging.rb,
lib/xftp/dsl/block_evaluator.rb,
lib/xftp/operations/ftp/glob.rb

Overview

Interface unification for FTP/SFTP protocols

Defined Under Namespace

Modules: DSL, Helpers, Operations, Session, VERSION Classes: Client, Configuration, NotSupportedProtocol

Class Method Summary collapse

Class Method Details

.configObject

Config accessor



12
13
14
# File 'lib/xftp.rb', line 12

def self.config
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

For a block { |config| … }

Yields:



29
30
31
# File 'lib/xftp.rb', line 29

def self.configure
  yield config
end

.start(url, settings = {}, &callback) ⇒ Object

Initiates a new session

Parameters:

  • :url (String)

    the remote host url

  • settings (Hash) (defaults to: {})

    the connection settings

Options Hash (settings):

  • :credentials (Hash<Symbol, String>)

    the authentication credentials

Raises:

  • (URI::InvalidURIError)

    if url given is not a correct URI

  • (XFTP::MissingArgument)

    if some of the required settings are missing

  • (XFTP::NotSupportedProtocol)

    if protocol detected by schema is not supported

See Also:

  • Net::SSH
  • Net::FTP


45
46
47
# File 'lib/xftp.rb', line 45

def self.start(url, settings = {}, &callback)
  Client.start(url, settings, &callback)
end

.using(logger: config.logger, ftp: config.ftp, ssh: config.ssh) ⇒ Object

Calls the given block using temporary configuration :reek:TooManyStatements



18
19
20
21
22
23
24
25
# File 'lib/xftp.rb', line 18

def self.using(logger: config.logger, ftp: config.ftp, ssh: config.ssh)
  snapshot = config.clone
  config.logger = logger
  config.ftp = ftp
  config.ssh = ssh
  yield
  @configuration = snapshot
end