Class: Mailscope::Storage::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/mailscope/storage/base.rb

Overview

The contract every adapter has to satisfy. Kept deliberately small so a database- or Redis-backed adapter stays a weekend of work.

Direct Known Subclasses

Filesystem

Instance Method Summary collapse

Instance Method Details

#allArray<Mailscope::Message>

Returns newest first.

Returns:

Raises:

  • (NotImplementedError)


9
# File 'lib/mailscope/storage/base.rb', line 9

def all = raise(NotImplementedError)

#clearObject

Raises:

  • (NotImplementedError)


25
# File 'lib/mailscope/storage/base.rb', line 25

def clear = raise(NotImplementedError)

#delete(id) ⇒ Object

Raises:

  • (NotImplementedError)


23
# File 'lib/mailscope/storage/base.rb', line 23

def delete(id) = raise(NotImplementedError)

#find(id) ⇒ Mailscope::Message?

Returns:

Raises:

  • (NotImplementedError)


12
# File 'lib/mailscope/storage/base.rb', line 12

def find(id) = raise(NotImplementedError)

#pruneObject

Applies the retention policy (max_letters:, max_age:) and returns the number of messages removed. Adapters without retention keep this no-op.



29
# File 'lib/mailscope/storage/base.rb', line 29

def prune(**) = 0

#read_attachment(id, attachment_id) ⇒ String?

Returns decoded attachment bytes.

Returns:

  • (String, nil)

    decoded attachment bytes

Raises:

  • (NotImplementedError)


21
# File 'lib/mailscope/storage/base.rb', line 21

def read_attachment(id, attachment_id) = raise(NotImplementedError)

#read_raw(id) ⇒ String

Returns raw RFC822 source.

Returns:

  • (String)

    raw RFC822 source

Raises:

  • (NotImplementedError)


18
# File 'lib/mailscope/storage/base.rb', line 18

def read_raw(id) = raise(NotImplementedError)

#revisionObject

Cheap change token so the browser can poll without transferring the list.



32
# File 'lib/mailscope/storage/base.rb', line 32

def revision = all.first&.id.to_s

#store(mail) ⇒ Object

Persists a delivered Mail::Message. @return [String] the new id

Raises:

  • (NotImplementedError)


15
# File 'lib/mailscope/storage/base.rb', line 15

def store(mail) = raise(NotImplementedError)