class Sisimai::Mail::Memory

Sisimai::Mail::Memory is a class for reading an email string

Attributes

offset[RW]
path[R]

Imported from p5-Sisimail/lib/Sisimai/Mail/Memory.pm :path [String] Fixed string “<MEMORY>” :size [Integer] data size of the email text :payload [Array] Entire bounce mail message :offset [Integer] Index of “:payload”

payload[RW]
size[R]

Imported from p5-Sisimail/lib/Sisimai/Mail/Memory.pm :path [String] Fixed string “<MEMORY>” :size [Integer] data size of the email text :payload [Array] Entire bounce mail message :offset [Integer] Index of “:payload”

Public Class Methods

new(argv1) click to toggle source

Constructor of Sisimai::Mail::Memory @param [String] argv1 Entire email string @return [Sisimai::Mail::Memory] Object

[Nil]                   is not specified or does not exist
# File lib/sisimai/mail/memory.rb, line 17
def initialize(argv1)
  raise 'is not a String' unless argv1.is_a? ::String
  raise 'is empty'        if argv1.empty?

  @path    = '<MEMORY>'
  @size    = argv1.size
  @payload = []
  @offset  = 0

  if argv1.start_with?('From ')
    # UNIX mbox
    @payload = argv1.split(/^From /).map! { |e| e = 'From ' + e }
    @payload.shift
  else
    @payload = [argv1]
  end
end

Public Instance Methods

read() click to toggle source

Memory reader, works as an iterator. @return [String] Contents of a bounce mail

# File lib/sisimai/mail/memory.rb, line 37
def read
  return nil if self.payload.empty?
  self.offset += 1
  return self.payload.shift
end