Class: MailParser::Header
- Inherits:
-
Object
- Object
- MailParser::Header
- Defined in:
- lib/mailparser.rb
Overview
Header part
Instance Method Summary collapse
-
#[](name) ⇒ Array<header field value>
header field value.
-
#add(name, body) ⇒ void
add header field.
-
#each {|key, value| ... } ⇒ void
repeat block for each header field.
-
#initialize(opt = {}) ⇒ Header
constructor
A new instance of Header.
-
#key?(name) ⇒ Boolean
True if header field exists.
-
#keys ⇒ Array<String>
Header names.
-
#raw(name) ⇒ Array<String>
Raw header value.
Constructor Details
#initialize(opt = {}) ⇒ Header
Returns a new instance of Header.
113 114 115 116 117 118 |
# File 'lib/mailparser.rb', line 113 def initialize(opt={}) @hash = {} @parsed = {} @raw = {} @opt = opt end |
Instance Method Details
#[](name) ⇒ Array<header field value>
header field value
133 134 135 136 137 138 |
# 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) ⇒ void
This method returns an undefined value.
add header field
124 125 126 127 128 |
# 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 {|key, value| ... } ⇒ void
This method returns an undefined value.
repeat block for each header field
165 166 167 168 169 |
# File 'lib/mailparser.rb', line 165 def each() @hash.each do |k, v| yield k, self[k] end end |
#key?(name) ⇒ Boolean
Returns true if header field exists.
156 157 158 |
# File 'lib/mailparser.rb', line 156 def key?(name) return @hash.key?(name) end |
#keys ⇒ Array<String>
Returns header names.
150 151 152 |
# File 'lib/mailparser.rb', line 150 def keys() return @hash.keys end |
#raw(name) ⇒ Array<String>
Returns raw header value.
142 143 144 145 146 147 |
# 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 |