mirror of
https://github.com/samsonjs/http-cookie.git
synced 2026-03-25 08:55:53 +00:00
37 lines
714 B
Ruby
37 lines
714 B
Ruby
require 'http/cookie_jar'
|
|
begin
|
|
require 'psych'
|
|
rescue LoadError
|
|
end
|
|
require 'yaml'
|
|
|
|
# YAMLSaver saves and loads cookies in the YAML format.
|
|
class HTTP::CookieJar::YAMLSaver < HTTP::CookieJar::AbstractSaver
|
|
def save(io, jar)
|
|
YAML.dump(@session ? jar.to_a : jar.reject(&:session?), io)
|
|
end
|
|
|
|
def load(io, jar)
|
|
begin
|
|
data = YAML.load(io)
|
|
rescue ArgumentError
|
|
@logger.warn "unloadable YAML cookie data discarded" if @logger
|
|
return
|
|
end
|
|
|
|
unless data.instance_of?(Array)
|
|
@logger.warn "incompatible YAML cookie data discarded" if @logger
|
|
return
|
|
end
|
|
|
|
data.each { |cookie|
|
|
jar.add(cookie)
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
def default_options
|
|
{}
|
|
end
|
|
end
|