Sha256: 25edd421500595e1650f8ecd13540d7e4a4f7958035e111427d602fc9d73dd73

Contents?: true

Size: 815 Bytes

Versions: 8

Compression:

Stored size: 815 Bytes

Contents

module Imap::Backup
  class Account; end
  class Account::Connection; end

  class Account::Connection::BackupFolders
    attr_reader :account
    attr_reader :client

    def initialize(client:, account:)
      @client = client
      @account = account
    end

    def run
      all_names = Account::Connection::FolderNames.new(client: client, account: account).run

      configured =
        case
        when account.folders&.any?
          account.folders.map { |af| af[:name] }
        when account.folder_blacklist
          []
        else
          all_names
        end

      names =
        if account.folder_blacklist
          all_names - configured
        else
          all_names & configured
        end

      names.map { |name| Account::Folder.new(account.connection, name) }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
imap-backup-9.3.2 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.4.0.pre1 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.3.1 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.3.0 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.2.0 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.1.1 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.1.0 lib/imap/backup/account/connection/backup_folders.rb
imap-backup-9.0.2 lib/imap/backup/account/connection/backup_folders.rb