class PacketGen::Header::HTTP::Headers
@abstract Base
class for HTTP
headers. @author Kent 'picat' Gruber
Attributes
data[R]
Underlying Headers
data (or nil). @return [Hash, nil]
to_h[R]
Underlying Headers
data (or nil). @return [Hash, nil]
Public Class Methods
new()
click to toggle source
# File lib/packetgen/header/http/headers.rb, line 22 def initialize @data = {} end
Public Instance Methods
from_human(data)
click to toggle source
Read human-readable data to populate header data. @param [String, Hash] data @return [self]
# File lib/packetgen/header/http/headers.rb, line 65 def from_human(data) read(data) end
given?()
click to toggle source
Check if any headers were given. @return [Boolean]
# File lib/packetgen/header/http/headers.rb, line 71 def given? return true unless @data.nil? || @data.empty? false end
read(s_or_h)
click to toggle source
Populate object from a string or directly from a hash. @param [String, Hash] s_or_h @return [self]
# File lib/packetgen/header/http/headers.rb, line 29 def read(s_or_h) case s_or_h when String @data = s_or_h.split("\n").map do |h| next unless h.include?(':') k, v = h.split(':', 2) [k, v.strip] end.reject(&:nil?).to_h when Hash @data = s_or_h end self end
to_human()
click to toggle source
Get a human readable string. @return [Hash]
# File lib/packetgen/header/http/headers.rb, line 58 def to_human @data end
to_s()
click to toggle source
Get binary string. @return [String]
# File lib/packetgen/header/http/headers.rb, line 46 def to_s return "\r\n" if @data.nil? || @data.empty? d = [] @data.map do |k, v| d << "#{k}: #{v}" end d.join("\r\n") << "\r\n\r\n" end