Sha256: 2d892d89767ff38f194407b70fe63e1463539190870ce22dc65d88f9874a854c
Contents?: true
Size: 1.8 KB
Versions: 2
Compression:
Stored size: 1.8 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. 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
packetgen-2.4.0 | lib/packetgen/header/http/headers.rb |
packetgen-2.3.0 | lib/packetgen/header/http/headers.rb |