class HTTPClient::WebAgentSaver

def self.flag(cookie)

def self.flag(cookie)
  flg = 0
  flg += USE # not used
  flg += SECURE  if cookie.secure?
  flg += DOMAIN  if cookie.for_domain?
  flg += HTTP_ONLY  if cookie.httponly?
  flg += PATH  if cookie.path # not used
  flg
end

def self.set_flag(cookie, flag)

def self.set_flag(cookie, flag)
  cookie.secure = true if flag & SECURE > 0
  cookie.for_domain = true if flag & DOMAIN > 0
  cookie.httponly = true if flag & HTTP_ONLY > 0
end

def cookie_to_record(cookie)

def cookie_to_record(cookie)
  [
    cookie.origin,
    cookie.name, 
    cookie.value,
    cookie.expires.to_i,
    cookie.dot_domain,
    cookie.path,
    self.class.flag(cookie)
  ].join("\t") + "\n"
end

def default_options

no option
def default_options
  {}
end

def load(io, jar)

same as HTTP::CookieJar::CookiestxtSaver
def load(io, jar)
  io.each_line { |line|
    cookie = parse_record(line) and jar.add(cookie)
  }
end

def parse_record(line)

def parse_record(line)
  return nil if /\A#/ =~ line
  col = line.chomp.split(/\t/)
  origin = col[0]
  name = col[1]
  value = col[2]
  value.chomp!
  if col[3].empty? or col[3] == '0'
    expires = nil
  else
    expires = Time.at(col[3].to_i)
    return nil if expires < Time.now
  end
  domain = col[4]
  path = col[5]
  cookie = WebAgent::Cookie.new(name, value,
    :origin => origin,
    :domain => domain,
    :path => path,
    :expires => expires
  )
  self.class.set_flag(cookie, col[6].to_i)
  cookie
end

def save(io, jar)

same as HTTP::CookieJar::CookiestxtSaver
def save(io, jar)
  jar.each { |cookie|
    next if !@session && cookie.session?
    io.print cookie_to_record(cookie)
  }
end