class DropboxServerBackupApp

Attributes

session[R]

Public Class Methods

create(options) { |get_authorize_url| ... } click to toggle source
# File lib/dropbox_server_backup_app.rb, line 11
def self.create(options)
  session = DropboxSession.new(options[:app_key], options[:app_secret])
  session.get_request_token
  yield(session.get_authorize_url)
  session.get_access_token
  self.new(session)
end
new(session) click to toggle source
# File lib/dropbox_server_backup_app.rb, line 5
def initialize(session)
  @access_type = :app_folder
  @session     = session
  @client      = DropboxClient.new(session, @access_type)
end

Public Instance Methods

log(message, error=false) click to toggle source
# File lib/dropbox_server_backup_app.rb, line 42
def log(message, error=false)
  full_message = ""
  full_message += "ERROR: " if error
  full_message += message
  puts full_message
end
upload(filename) click to toggle source
# File lib/dropbox_server_backup_app.rb, line 19
def upload(filename)
  dropbox_filename = File.basename(filename)
  begin
    metadata = @client.metadata(dropbox_filename)
    unless metadata[:is_deleted]
      log "deleting existing file #{dropbox_filename} from Dropbox"
      @client.file_delete(dropbox_filename)
    end
  rescue DropboxError
  end

  begin
    @client.put_file(dropbox_filename, open(filename))
    log "uploading file #{filename} from Dropbox"
  rescue DropboxAuthError
    log("can't authenticate with dropbox.", :error)
  rescue Errno::ENOENT 
    log("file #{filename} doesn't exist.", :error)
  rescue Errno::EACCES
    log("no access to file #{filename}.", :error)
  end
end