Sha256: df1ca511dc120774a09d6070de04cec30c09b95e6eb9448855c2e5e34d7b8c93

Contents?: true

Size: 912 Bytes

Versions: 9

Compression:

Stored size: 912 Bytes

Contents

require "imap/backup/account/backup_folders"
require "imap/backup/account/serialized_folders"

module Imap; end

module Imap::Backup
  class Account; end

  # Deletes serialized folders that are not configured to be backed up.
  # This is used in mirror mode, where local copies are only kept as long as they
  # exist on the server.
  class Account::LocalOnlyFolderDeleter
    def initialize(account:)
      @account = account
    end

    # Runs the deletion operation
    # @return [void]
    def run
      backup_folders = Account::BackupFolders.new(
        client: account.client, account: account
      )
      wanted = backup_folders.map(&:name)
      serialized_folders = Account::SerializedFolders.new(account: account)
      serialized_folders.each_key do |serializer|
        serializer.delete if !wanted.include?(serializer.folder)
      end
    end

    private

    attr_reader :account
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
imap-backup-15.0.3.rc1 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-15.0.2 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-15.0.1 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-15.0.0 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-14.6.1 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-14.6.0 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-14.5.2 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-14.5.1 lib/imap/backup/account/local_only_folder_deleter.rb
imap-backup-14.5.0 lib/imap/backup/account/local_only_folder_deleter.rb