Module: MailParser::RFC2045

Included in:
MailParser
Defined in:
lib/mailparser/rfc2045.rb,
lib/mailparser/rfc2045/parser.rb

Defined Under Namespace

Classes: ContentTransferEncoding, ContentType, Parser, Scanner

Constant Summary collapse

HEADER_TYPE =
{
  "content-type"              => :CONTENT_TYPE,
#    "content-description"       => :UNSTRUCTURED,
  "content-transfer-encoding" => :CONTENT_TRANSFER_ENCODING,
  "content-id"                => [MailParser::RFC2822, :MSG_ID],
  "mime-version"              => :MIME_VERSION,
}

Class Method Summary collapse

Class Method Details

.b64_decode(str) ⇒ Object



52
53
54
# File 'lib/mailparser/rfc2045.rb', line 52

def b64_decode(str)
  return str.gsub(/[^A-Z0-9\+\/=]/i,"").unpack("m")[0]
end

.parse(name, value, opt = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mailparser/rfc2045.rb', line 36

def parse(name, value, opt={})
  htype = HEADER_TYPE[name.downcase]
  unless htype then
    return value.chomp
  end
  if htype.is_a? Array then
    htype[0]::Parser.new.parse(htype[1], value)
  else
    Parser.new.parse(htype, value)
  end
end

.qp_decode(str) ⇒ Object



48
49
50
# File 'lib/mailparser/rfc2045.rb', line 48

def qp_decode(str)
  return str.gsub(/=\s*?$/,"=").unpack("M")[0]
end