Sha256: 32b87b66c8dc32d247afaf50808b1a6d0289064c50e8b275929e7b4ae642bf4d

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

# encoding: utf-8

module Imap
  module Backup
    module Configuration
      class FolderChooser

        def initialize(account)
          @account = account
        end

        def run
          begin
            @connection = Imap::Backup::Account::Connection.new(@account)
          rescue => e
            puts 'Connection failed'
            Setup.highline.ask 'Press a key '
            return
          end
          @folders = @connection.folders
          loop do
            Setup.highline.choose do |menu|
              menu.header = 'Add/remove folders'
              menu.index = :number
              @folders.each do |folder|
                name  = folder.name
                found = @account[:folders].find { |f| f[:name] == name }
                mark  =
                  if found
                    '+'
                  else
                    '-'
                  end
                menu.choice("#{mark} #{name}") do
                  if found
                    @account[:folders].reject! { |f| f[:name] == name }
                  else
                    @account[:folders] << { :name => name }
                  end
                end
              end
              menu.choice('return to the account menu') do
                return
              end
              menu.hidden('quit') do
                return
              end
            end
          end
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
imap-backup-0.0.5 lib/imap/backup/configuration/folder_chooser.rb
imap-backup-0.0.4 lib/imap/backup/configuration/folder_chooser.rb