class MailParser::Header

Header part

Public Class Methods

new(opt={}) click to toggle source

@param [Hash] opt options @option opt [Boolean] :decode_mime_header decode MIME header @option opt [String] :output_charset output encoding name @option opt [Boolean] :strict raise ParseError exception when message is invalid

# File lib/mailparser.rb, line 113
def initialize(opt={})
  @hash = {}
  @parsed = {}
  @raw = {}
  @opt = opt
end

Public Instance Methods

[](name) click to toggle source

header field value @param [String] name header field name @return [Array<header field value>]

# File lib/mailparser.rb, line 133
def [](name)
  return nil unless @hash.key? name
  return @parsed[name] if @parsed.key? name
  @parsed[name] = @hash[name].map{|h| h.parse}.compact
  return @parsed[name]
end
add(name, body) click to toggle source

add header field @param [String] name header field name @param [String] body header field value @return [void]

# File lib/mailparser.rb, line 124
def add(name, body)
  name = name.downcase
  @hash[name] = [] unless @hash.key? name
  @hash[name] << HeaderItem.new(name, body, @opt)
end
each() { |k, self| ... } click to toggle source

repeat block for each header field @yield [key, value] @yieldparam [String] key header field name @yieldparam [header field value] value header field value @return [void]

# File lib/mailparser.rb, line 165
def each()
  @hash.each do |k, v|
    yield k, self[k]
  end
end
key?(name) click to toggle source

@param [String] name header field name @return [Boolean] true if header field exists

# File lib/mailparser.rb, line 156
def key?(name)
  return @hash.key?(name)
end
keys() click to toggle source

@return [Array<String>] header names

# File lib/mailparser.rb, line 150
def keys()
  return @hash.keys
end
raw(name) click to toggle source

@param [String] name header field name @return [Array<String>] raw header value

# File lib/mailparser.rb, line 142
def raw(name)
  return nil unless @hash.key? name
  return @raw[name] if @raw.key? name
  @raw[name] = @hash[name].map{|h| h.raw}
  return @raw[name]
end