class Cookiefilter::Utils

Public Class Methods

construct_request_header(cookies_to_keep) click to toggle source
# File lib/cookiefilter/utils.rb, line 44
def construct_request_header(cookies_to_keep)
  http_cookie = ''
  cookies_to_keep.each do |cookie|
    http_cookie << "#{cookie[:key]}=#{cookie[:value]}; "
  end
  #  Chopping last ';' since headers does not expect it.
  http_cookie.strip.chomp(';')
end
construct_response_header(host, set) click to toggle source
# File lib/cookiefilter/utils.rb, line 53
def construct_response_header(host, set)
  http_cookies = []
  naked_host = host.sub!(/\Awww\./, '')
  set.each do |cookie|
    http_cookies << "#{cookie[:key]}=#{cookie[:value]};#{cookie[:options]}"
    if cookie[:value] == 'unset'
      http_cookies << "#{cookie[:key]}=#{cookie[:value]};Domain=.#{naked_host};#{cookie[:options]}"
      http_cookies << "#{cookie[:key]}=#{cookie[:value]};Domain=www.#{naked_host};#{cookie[:options]}"
    end
  end
  http_cookies.join("\n")
end
parse_request_cookies(cookie_string) click to toggle source
# File lib/cookiefilter/utils.rb, line 19
def parse_request_cookies(cookie_string)
  cookies = []
  return cookies if cookie_string.blank?
  cookie_strings = cookie_string.split(';')
  cookie_strings.each do |cookie|
    key, value = cookie.strip.split('=', 2)
    cookies << { key: key, value: value, size: "#{key}=#{value}; ".bytesize }
  end
  cookies
end
sanitize_utf8_string(cookie_string, banned_chars, replace_char) click to toggle source
# File lib/cookiefilter/utils.rb, line 5
def sanitize_utf8_string(cookie_string, banned_chars, replace_char)
  result = ''
  # blank? can'd handle broken utf-8 characters.
  return result if cookie_string.nil?
  cookie_string.each_char do |char|
    if banned_chars.include? char
      result << replace_char
    else
      result << char
    end
  end
  result
end