Sha256: 0948dd2d79054197100e0f4fc2447dd956092e3b8cee9a7384c71b5293d5ee85

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 KB

Contents

# encoding: utf-8

module Imap::Backup::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
      if @folders.nil?
        puts 'Unable to get folder list'
        Setup.highline.ask 'Press a key '
        return
      end
      loop do
        system('clear')
        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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
imap-backup-1.0.9 lib/imap/backup/configuration/folder_chooser.rb
imap-backup-1.0.8 lib/imap/backup/configuration/folder_chooser.rb
imap-backup-1.0.7 lib/imap/backup/configuration/folder_chooser.rb
imap-backup-1.0.6 lib/imap/backup/configuration/folder_chooser.rb