Sha256: 2e16fe110f3ea53018d7c365dcd4fea415481a150137b690ee6c8e5e11b4d68f

Contents?: true

Size: 961 Bytes

Versions: 6

Compression:

Stored size: 961 Bytes

Contents

require "imap/backup/account/folder_mapper"
require "imap/backup/uploader"

module Imap; end

module Imap::Backup
  class Account; end

  # Restores all backed up folders to the server
  class Account::Restore
    def initialize(account:, delimiter: "/", prefix: "")
      @account = account
      @destination_delimiter = delimiter
      @destination_prefix = prefix
    end

    # Runs the restore operation
    # @return [void]
    def run
      folders.each do |serializer, folder|
        Uploader.new(folder, serializer).run
      end
    end

    private

    attr_reader :account
    attr_reader :destination_delimiter
    attr_reader :destination_prefix

    def enumerator_options
      {
        account: account,
        destination: account,
        destination_delimiter: destination_delimiter,
        destination_prefix: destination_prefix
      }
    end

    def folders
      Account::FolderMapper.new(**enumerator_options)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
imap-backup-15.0.3.rc1 lib/imap/backup/account/restore.rb
imap-backup-15.0.2 lib/imap/backup/account/restore.rb
imap-backup-15.0.1 lib/imap/backup/account/restore.rb
imap-backup-15.0.0 lib/imap/backup/account/restore.rb
imap-backup-14.6.1 lib/imap/backup/account/restore.rb
imap-backup-14.6.0 lib/imap/backup/account/restore.rb