Sha256: f6377b91bc544c03ebeb11dcaa4319ab7d2bcc6396d3edd012948bada97c20a2

Contents?: true

Size: 868 Bytes

Versions: 16

Compression:

Stored size: 868 Bytes

Contents

module Imap::Backup
  class CLI; end

  class CLI::Accounts
    include Enumerable

    attr_reader :required_accounts

    def initialize(required_accounts = [])
      @required_accounts = required_accounts
    end

    def each(&block)
      return enum_for(:each) if !block

      accounts.each(&block)
    end

    private

    def accounts
      @accounts ||=
        if required_accounts.empty?
          config.accounts
        else
          config.accounts.select do |account|
            required_accounts.include?(account.username)
          end
        end
    end

    def config
      @config ||= begin
        exists = Configuration.exist?
        if !exists
          path = Configuration.default_pathname
          raise ConfigurationNotFound, "Configuration file '#{path}' not found"
        end
        Configuration.new
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
imap-backup-7.0.2 lib/imap/backup/cli/accounts.rb
imap-backup-7.0.0.rc1 lib/imap/backup/cli/accounts.rb
imap-backup-6.3.0 lib/imap/backup/cli/accounts.rb
imap-backup-6.2.1 lib/imap/backup/cli/accounts.rb
imap-backup-6.1.0 lib/imap/backup/cli/accounts.rb
imap-backup-6.0.1 lib/imap/backup/cli/accounts.rb
imap-backup-6.0.0 lib/imap/backup/cli/accounts.rb
imap-backup-6.0.0.rc2 lib/imap/backup/cli/accounts.rb
imap-backup-5.2.0 lib/imap/backup/cli/accounts.rb
imap-backup-5.1.0 lib/imap/backup/cli/accounts.rb
imap-backup-5.0.0 lib/imap/backup/cli/accounts.rb
imap-backup-4.2.2 lib/imap/backup/cli/accounts.rb
imap-backup-4.2.1 lib/imap/backup/cli/accounts.rb
imap-backup-4.2.0 lib/imap/backup/cli/accounts.rb
imap-backup-4.1.2 lib/imap/backup/cli/accounts.rb
imap-backup-4.1.1 lib/imap/backup/cli/accounts.rb