Sha256: 142a14df93c2c48a29dca94bb6a3e9422ec36bc3819e3bd27eecb03dce1f570e

Contents?: true

Size: 823 Bytes

Versions: 4

Compression:

Stored size: 823 Bytes

Contents

module Imap::Backup
  class Downloader
    attr_reader :folder
    attr_reader :serializer

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

    def run
      uids = folder.uids - serializer.uids
      count = uids.count
      Imap::Backup.logger.debug "[#{folder.name}] #{count} new messages"
      uids.each.with_index do |uid, i|
        message = folder.fetch(uid)
        log_prefix = "[#{folder.name}] uid: #{uid} (#{i + 1}/#{count}) -"
        if message.nil?
          Imap::Backup.logger.debug("#{log_prefix} not available - skipped")
          next
        end
        Imap::Backup.logger.debug(
          "#{log_prefix} #{message['RFC822'].size} bytes"
        )
        body = message["RFC822"]
        serializer.save(uid, body)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
imap-backup-4.0.2 lib/imap/backup/downloader.rb
imap-backup-4.0.1 lib/imap/backup/downloader.rb
imap-backup-4.0.0 lib/imap/backup/downloader.rb
imap-backup-4.0.0.rc6 lib/imap/backup/downloader.rb