Sha256: 5b9eea031c21ef3c220a1145a14442e2b57103db353496e39f0a0597f44f76e2

Contents?: true

Size: 1013 Bytes

Versions: 4

Compression:

Stored size: 1013 Bytes

Contents

module MIME

  #
  # Header section for Internet and MIME messages.
  #
  class Header

    def initialize
      @headers = Hash.new
    end

    #
    # Convert all headers to their string equivalents and join them using the
    # RFC 2822 CRLF line separator.
    #--
    # TODO fold lines to 78 chars.
    # word.scan(/(.,?){1,78}/) OR word.split
    #
    def to_s
      @headers.to_a.map {|kv| kv.join(": ")}.join("\r\n")
    end

    #
    # Get header value associated with +name+.
    #
    def get name
      _, value = @headers.find {|k,v| name.downcase == k.downcase }
      value
    end

    #
    # Set header +name+ to +value+. If a header of the same name exists it will
    # be overwritten. Header names are _case-insensitive_.
    #
    def set name, value
      delete(name)
      @headers.store(name, value) unless value.nil?
    end

    #
    # Delete header associated with +name+.
    #
    def delete name
      @headers.delete_if {|k,v| name.downcase == k.downcase }
    end

  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
vagrant-unbundled-2.2.10.0 vendor/bundle/ruby/2.7.0/gems/mime-0.4.4/lib/mime/header.rb
mime-0.4.4 lib/mime/header.rb
mime-0.4.3 lib/mime/header.rb
mime-0.4.2 lib/mime/header.rb