class Typhoeus::Response::Header
This class represents the response header. It can be accessed like a hash. Values can be strings (normal case) or arrays of strings (for duplicates headers)
@api private
Public Class Methods
new(raw)
click to toggle source
Create a new header.
@example Create new header.
Header.new(raw)
@param [ String ] raw The raw header.
# File lib/typhoeus/response/header.rb, line 17 def initialize(raw) @raw = raw @sanitized = {} parse set_default_proc_on(self, lambda { |h, k| @sanitized[k.to_s.downcase] }) end
Public Instance Methods
parse()
click to toggle source
Parses the raw header.
@example Parse header.
header.parse
# File lib/typhoeus/response/header.rb, line 28 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.start_with?( 'HTTP/1.' ) process_line(header) end end end
Private Instance Methods
process_line(header)
click to toggle source
Processes line and saves the result.
@return [ void ]
# File lib/typhoeus/response/header.rb, line 47 def process_line(header) key, value = header.split(':', 2) process_pair(key.strip, value.strip) end
process_pair(key, value)
click to toggle source
Sets key value pair for self and @sanitized.
@return [ void ]
# File lib/typhoeus/response/header.rb, line 55 def process_pair(key, value) set_value(key, value, self) @sanitized[key.downcase] = self[key] end
raw()
click to toggle source
Returns the raw header or empty string.
@example Return raw header.
header.raw
@return [ String ] The raw header.
# File lib/typhoeus/response/header.rb, line 82 def raw @raw || '' end
set_default_proc_on(hash, default_proc)
click to toggle source
Sets the default proc for the specified hash independent of the Ruby version.
@return [ void ]
# File lib/typhoeus/response/header.rb, line 89 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
set_value(key, value, hash)
click to toggle source
Sets value for key in specified hash
@return [ void ]
# File lib/typhoeus/response/header.rb, line 63 def set_value(key, value, hash) current_value = hash[key] if current_value if current_value.is_a? Array current_value << value else hash[key] = [current_value, value] end else hash[key] = value end end