Sha256: 664e4c39f2a640e1ebbb60be571244f420b71df9abe604f867acfb6298d145ca
Contents?: true
Size: 1.83 KB
Versions: 3
Compression:
Stored size: 1.83 KB
Contents
# This file is part of PacketGen # See https://github.com/sdaubert/packetgen for more informations # Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net> # This program is published under MIT license. # frozen_string_literal: true module PacketGen module Header # @since 2.2.0 module HTTP # @abstract Base class for HTTP headers. # @author Kent 'picat' Gruber class Headers def initialize @data = nil end # Populate object from a string or directly from a hash. # @param [String, Hash] s_or_h # @return [self] def read(s_or_h) case s_or_h when String @data = s_or_h.split("\n").map do |h| k, v = h.split(":", 2) [k, v.strip] end.to_h when Hash @data = s_or_h end self end # Get binary string. # @return [String] def to_s return "\r\n" if @data.nil? || @data.empty? d = [] @data.map do |k, v| str = "" str << k << ": " << v d << str end d.join("\r\n") << "\r\n\r\n" end # Get a human readable string. # @return [Hash] def to_human @data end # Read human-readable data to populate header data. # @param [String, Hash] data # @return [self] def from_human(data) read(data) end # Check if any headers were given. # @return [Boolean] def given? return true unless @data.nil? || @data.empty? false end # Shorcut to the underlying Headers data or nil. # @return [Hash, nil] def data @data end alias to_h data end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
packetgen-2.5.2 | lib/packetgen/header/http/headers.rb |
packetgen-2.5.1 | lib/packetgen/header/http/headers.rb |
packetgen-2.5.0 | lib/packetgen/header/http/headers.rb |