Class TMail::HeaderField
In: lib/tmail/header.rb
Parent: Object

Methods

accept   body   body=   empty?   illegal?   inspect   internal_new   new   new   new_from_port  

Included Modules

TextUtils StrategyInterface

Constants

FNAME_TO_CLASS = { 'date' => DateTimeHeader, 'resent-date' => DateTimeHeader, 'to' => AddressHeader, 'cc' => AddressHeader, 'bcc' => AddressHeader, 'from' => AddressHeader, 'reply-to' => AddressHeader, 'resent-to' => AddressHeader, 'resent-cc' => AddressHeader, 'resent-bcc' => AddressHeader, 'resent-from' => AddressHeader, 'resent-reply-to' => AddressHeader, 'sender' => SingleAddressHeader, 'resent-sender' => SingleAddressHeader, 'return-path' => ReturnPathHeader, 'message-id' => MessageIdHeader, 'resent-message-id' => MessageIdHeader, 'in-reply-to' => ReferencesHeader, 'received' => ReceivedHeader, 'references' => ReferencesHeader, 'keywords' => KeywordsHeader, 'encrypted' => EncryptedHeader, 'mime-version' => MimeVersionHeader, 'content-type' => ContentTypeHeader, 'content-transfer-encoding' => ContentTransferEncodingHeader, 'content-disposition' => ContentDispositionHeader, 'content-id' => MessageIdHeader, 'subject' => UnstructuredHeader, 'comments' => UnstructuredHeader, 'content-description' => UnstructuredHeader

External Aliases

new -> newobj

Public Class methods

[Source]

# File lib/tmail/header.rb, line 48
      def internal_new(name, conf)
        FNAME_TO_CLASS[name].newobj('', conf, true)
      end

[Source]

# File lib/tmail/header.rb, line 54
    def initialize(body, conf, intern = false)
      @body = body
      @config = conf

      @illegal = false
      @parsed = false
      if intern
        @parsed = true
        parse_init
      end
    end

[Source]

# File lib/tmail/header.rb, line 28
      def new(name, body, conf = DEFAULT_CONFIG)
        klass = FNAME_TO_CLASS[name.downcase] || UnstructuredHeader
        klass.newobj body, conf
      end

[Source]

# File lib/tmail/header.rb, line 33
      def new_from_port(port, name, conf = DEFAULT_CONFIG)
        re = Regexp.new('\A(' + Regexp.quote(name) + '):', 'i')
        str = nil
        port.ropen {|f|
          f.each do |line|
            if m = re.match(line)           then str = m.post_match.strip
            elsif str and /\A[\t ]/ =~ line then str << ' ' << line.strip
            elsif /\A-*\s*\z/ =~ line       then break
            elsif str                       then break
            end
          end
        }
        new(name, str, Config.to_config(conf))
      end

Public Instance methods

[Source]

# File lib/tmail/header.rb, line 113
    def accept(strategy, dummy1 = nil, dummy2 = nil)
      ensure_parsed
      do_accept strategy
      strategy.terminate
    end

[Source]

# File lib/tmail/header.rb, line 98
    def body
      ensure_parsed
      v = Decoder.new(s = '')
      do_accept v
      v.terminate
      s
    end

[Source]

# File lib/tmail/header.rb, line 106
    def body=(str)
      @body = str
      clear_parse_status
    end

[Source]

# File lib/tmail/header.rb, line 74
    def empty?
      ensure_parsed
      return true if @illegal
      isempty?
    end

[Source]

# File lib/tmail/header.rb, line 70
    def illegal?
      @illegal
    end

[Source]

# File lib/tmail/header.rb, line 66
    def inspect
      "#<#{self.class} #{@body.inspect}>"
    end

[Validate]