Sha256: 38771a551843e41bff226101818832b512b5f6172e20e18dcd68d86e965edda4

Contents?: true

Size: 974 Bytes

Versions: 17

Compression:

Stored size: 974 Bytes

Contents

require "email/mboxrd/message"

module Imap::Backup
  class Serializer::Message
    attr_accessor :uid
    attr_accessor :flags
    attr_reader :offset
    attr_reader :length
    attr_reader :mbox

    # TODO: delegate to Mboxrd::Message

    def initialize(uid:, offset:, length:, mbox:, flags: [])
      @uid = uid
      @offset = offset
      @length = length
      @mbox = mbox
      @flags = flags.map(&:to_sym)
    end

    def to_h
      {
        uid: uid,
        offset: offset,
        length: length,
        flags: flags.map(&:to_s)
      }
    end

    def message
      @message =
        begin
          raw = mbox.read(offset, length)
          Email::Mboxrd::Message.from_serialized(raw)
        end
    end

    def body
      @body ||= message.supplied_body
    end

    def imap_body
      @imap_body ||= message.imap_body
    end

    def date
      @date ||= message.date
    end

    def subject
      @subject ||= message.subject
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
imap-backup-10.0.0 lib/imap/backup/serializer/message.rb
imap-backup-9.3.2 lib/imap/backup/serializer/message.rb
imap-backup-9.4.0.pre1 lib/imap/backup/serializer/message.rb
imap-backup-9.3.1 lib/imap/backup/serializer/message.rb
imap-backup-9.3.0 lib/imap/backup/serializer/message.rb
imap-backup-9.2.0 lib/imap/backup/serializer/message.rb
imap-backup-9.1.1 lib/imap/backup/serializer/message.rb
imap-backup-9.1.0 lib/imap/backup/serializer/message.rb
imap-backup-9.0.2 lib/imap/backup/serializer/message.rb
imap-backup-9.0.1.rc1 lib/imap/backup/serializer/message.rb
imap-backup-9.0.0 lib/imap/backup/serializer/message.rb
imap-backup-9.0.0.rc1 lib/imap/backup/serializer/message.rb
imap-backup-8.0.2 lib/imap/backup/serializer/message.rb
imap-backup-8.0.1 lib/imap/backup/serializer/message.rb
imap-backup-8.0.0 lib/imap/backup/serializer/message.rb
imap-backup-8.0.0.rc1 lib/imap/backup/serializer/message.rb
imap-backup-7.0.2 lib/imap/backup/serializer/message.rb