Sha256: 0c039dd3cd122f3f09ba4ad8c37a78d87c6bb248dfc251c56679370093283fe5

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require "email/provider"
require "imap/backup/setup/asker"

module Imap; end

module Imap::Backup
  class Setup; end

  class Setup::Email
    attr_reader :account
    attr_reader :config

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

    def run
      username = Setup::Asker.email(account.username)
      other_accounts = config.accounts.reject { |a| a == account }
      others = other_accounts.map(&:username)
      if others.include?(username)
        Kernel.puts(
          "There is already an account set up with that email address"
        )
      else
        account.username = username
        if account.server.nil? || (account.server == "")
          default = default_server(username)
          account.server = default if default
        end
      end
    end

    private

    def default_server(username)
      provider = Email::Provider.for_address(username)

      if provider.is_a?(Email::Provider::Unknown)
        Kernel.puts "Can't decide provider for email address '#{username}'"
        return nil
      end

      provider.host
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
imap-backup-14.1.1 lib/imap/backup/setup/email.rb
imap-backup-14.1.0 lib/imap/backup/setup/email.rb