Sha256: 259fc21cc48764f710d46cfa6c9714962e41c8ce795bae31dae3ec8c16fbbdd0

Contents?: true

Size: 901 Bytes

Versions: 3

Compression:

Stored size: 901 Bytes

Contents

# encoding: utf-8

module Imap
  module Backup
    module Account
      class Folder
        REQUESTED_ATTRIBUTES = ['RFC822', 'FLAGS', 'INTERNALDATE']

        def initialize(connection, folder)
          @connection, @folder = connection, folder
        end

        def uids
          @connection.imap.examine(@folder)
          @connection.imap.uid_search(['ALL']).sort
        rescue Net::IMAP::NoResponseError => e
          warn "Folder '#{@folder}' does not exist"
          []
        end

        def fetch(uid)
          @connection.imap.examine(@folder)
          message = @connection.imap.uid_fetch([uid.to_i], REQUESTED_ATTRIBUTES)[0][1]
          message['RFC822'].force_encoding('utf-8') if RUBY_VERSION > '1.9'
          message
        rescue Net::IMAP::NoResponseError => e
          warn "Folder '#{@folder}' does not exist"
          nil
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
imap-backup-1.0.5 lib/imap/backup/account/folder.rb
imap-backup-1.0.4 lib/imap/backup/account/folder.rb
imap-backup-1.0.3 lib/imap/backup/account/folder.rb