Sha256: 5ef0ff51aef70554defc56be97ef34fef7c9ec03a4e8c08d4603bd400d0009e1

Contents?: true

Size: 615 Bytes

Versions: 1

Compression:

Stored size: 615 Bytes

Contents

require "email/mboxrd/message"
require "imap/backup/serializer/mbox_enumerator"

module Imap::Backup
  class Serializer::MessageEnumerator
    attr_reader :imap
    attr_reader :mbox

    def initialize(imap:, mbox:)
      @imap = imap
      @mbox = mbox
    end

    def run(uids:)
      uids.each do |uid_maybe_string|
        uid = uid_maybe_string.to_i
        message = imap.get(uid)

        next if !message

        raw = mbox.read(message[:offset], message[:length])
        body = Email::Mboxrd::Message.from_serialized(raw)

        yield message[:uid], body, message[:flags]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
imap-backup-7.0.0.rc1 lib/imap/backup/serializer/message_enumerator.rb