class Onlinebrief24::Client

Attributes

fingerprint[RW]
login[RW]
password[RW]
port[RW]
server[RW]
upload_dir[RW]

Public Class Methods

new(opts = {}) { |self| ... } click to toggle source
# File lib/onlinebrief24/client.rb, line 7
def initialize(opts = {}, &block)
  @login       = opts[:login]
  @password    = opts[:password]
  @server      = opts[:server]      || 'api.onlinebrief24.de'
  @port        = opts[:port]        || 22
  @upload_dir  = opts[:upload_dir]  || '/upload/api'

  return unless block_given?

  begin
    yield self
  ensure
    disconnect
  end
end

Public Instance Methods

abs_remote_path(filename) click to toggle source
# File lib/onlinebrief24/client.rb, line 51
def abs_remote_path(filename)
  @upload_dir + '/' + filename
end
connect()
Alias for: connection
connection() click to toggle source
# File lib/onlinebrief24/client.rb, line 40
def connection
  return @connection if @connection and @connection.open?

  @connection = Net::SFTP.start(@server, @login, :password => @password)
end
Also aliased as: connect
disconnect() click to toggle source
# File lib/onlinebrief24/client.rb, line 47
def disconnect
  @connection.session.close if @connection and @connection.open?
end
upload!(letter_or_file_handle_or_filename, options = {}) click to toggle source
# File lib/onlinebrief24/client.rb, line 23
def upload!(letter_or_file_handle_or_filename, options = {})

  if letter_or_file_handle_or_filename.is_a?(File) || letter_or_file_handle_or_filename.is_a?(String)
    letter = Letter.new(letter_or_file_handle_or_filename, options)
  elsif letter_or_file_handle_or_filename.is_a?(Onlinebrief24::Letter)
    letter = letter_or_file_handle_or_filename
  else
    raise ArgumentError, letter_or_file_handle_or_filename.class
  end

  letter.valid?

  connection.upload!(letter.local_path, abs_remote_path(letter.remote_filename))

  letter.remote_filename
end