class Typhoeus::Response::Header

@api private
It can be accessed like a hash.
This class represents the response header.

def initialize(raw)

Parameters:
  • raw (String) -- The raw header.

Other tags:
    Example: Create new header. -
def initialize(raw)
  @raw = raw
  @sanitized = {}
  parse
  set_default_proc_on(self, lambda { |h, k| @sanitized[k.to_s.downcase] })
end

def parse

Other tags:
    Example: Parse header. -
def parse
  case @raw
  when Hash
    raw.each do |k, v|
      process_pair(k, v)
    end
  when String
    raw.lines.each do |header|
      next if header.empty? || header =~ /^HTTP\/1.[01]/
      process_line(header)
    end
  end
end

def process_line(header)

Returns:
  • (void) -
def process_line(header)
  key, value = header.split(':', 2).map(&:strip)
  process_pair(key, value)
end

def process_pair(key, value)

Returns:
  • (void) -
def process_pair(key, value)
  set_value(key, value, self)
  set_value(key.downcase, value, @sanitized)
end

def raw

Returns:
  • (String) - The raw header.

Other tags:
    Example: Return raw header. -
def raw
  @raw || ''
end

def set_default_proc_on(hash, default_proc)

Returns:
  • (void) -
def set_default_proc_on(hash, default_proc)
  if hash.respond_to?(:default_proc=)
    hash.default_proc = default_proc
  else
    hash.replace(Hash.new(&default_proc).merge(hash))
  end
end

def set_value(key, value, hash)

Returns:
  • (void) -
def set_value(key, value, hash)
  if hash.has_key?(key)
    hash[key] = [hash[key]] unless hash[key].is_a? Array
    hash[key].push(value)
  else
    hash[key] = value
  end
end