Class: MailParser::HeaderItem
- Inherits:
-
Object
- Object
- MailParser::HeaderItem
- Defined in:
- lib/mailparser.rb
Overview
Header field
Instance Attribute Summary collapse
-
#raw ⇒ String
readonly
Raw field value.
Instance Method Summary collapse
-
#initialize(name, raw, opt = {}) ⇒ HeaderItem
constructor
A new instance of HeaderItem.
-
#parse ⇒ header field value
Parsed header object.
Constructor Details
#initialize(name, raw, opt = {}) ⇒ HeaderItem
Returns a new instance of HeaderItem.
60 61 62 63 64 65 |
# File 'lib/mailparser.rb', line 60 def initialize(name, raw, opt={}) @name = name @raw = raw @parsed = nil @opt = opt end |
Instance Attribute Details
#raw ⇒ String (readonly)
Returns raw field value.
68 69 70 |
# File 'lib/mailparser.rb', line 68 def raw @raw end |
Instance Method Details
#parse ⇒ header field value
Returns parsed header object.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/mailparser.rb', line 71 def parse() return @parsed if @parsed if HEADER_PARSER.key? @name then begin @parsed = HEADER_PARSER[@name].parse(@name, @raw, @opt) rescue ParseError raise if @opt[:strict] @parsed = Loose.parse(@name, @raw, @opt) end else r = @raw.chomp.gsub(/\r?\n/, '').gsub(/\t/, ' ') if @opt[:decode_mime_header] then @parsed = RFC2047.decode(r, @opt) elsif @opt[:output_charset] @parsed = @opt[:charset_converter].call(@opt[:output_charset], @opt[:output_charset], r) else @parsed = r end end if @parsed class <<@parsed attr_accessor :raw end @parsed.raw = @raw end # Content-Type, Content-Disposition parameter for RFC2231 if ["content-type", "content-disposition"].include? @name new = RFC2231.parse_param @parsed.params, @opt @parsed.params.replace new end return @parsed end |