class WebAgent::CookieManager

def add(given)

def add(given)
  check_domain(given.domain, given.url.host, given.override?)
  domain = given.domain || given.url.host
  path = given.path || given.url.path.sub(%r|/[^/]*\z|, '')
  cookie = nil
  @cookies.synchronize do
    check_expired_cookies
    cookie = @cookies.find { |c|
      c.domain == domain && c.path == path && c.name == given.name
    }
    if !cookie
      cookie = WebAgent::Cookie.new
      cookie.use = true
      @cookies << cookie
    end
  end
  cookie.domain = domain
  cookie.path = path
  cookie.url = given.url
  cookie.name = given.name
  cookie.value = given.value
  cookie.expires = given.expires
  cookie.secure = given.secure?
  cookie.http_only = given.http_only?
  cookie.domain_orig = given.domain
  cookie.path_orig = given.path
  if cookie.discard? || cookie.expires.nil?
    cookie.discard = true
  else
    cookie.discard = false
    @is_saved = false
  end
end