class WEBrick::Cookie
Processes HTTP cookies
Attributes
comment[RW]
The cookie comment
domain[RW]
The cookie domain
max_age[RW]
The maximum age of the cookie
name[R]
The cookie name
path[RW]
The cookie path
secure[RW]
Is this a secure cookie?
value[RW]
The cookie value
version[RW]
The cookie version
Public Class Methods
new(name, value)
click to toggle source
Creates a new cookie with the given name
and
value
# File lib/webrick/cookie.rb, line 65 def initialize(name, value) @name = name @value = value @version = 0 # Netscape Cookie @domain = @path = @secure = @comment = @max_age = @expires = @comment_url = @discard = @port = nil end
parse(str)
click to toggle source
Parses a Cookie field sent from the user-agent. Returns an array of cookies.
# File lib/webrick/cookie.rb, line 110 def self.parse(str) if str ret = [] cookie = nil ver = 0 str.split(/[;,]\s+/).each{|x| key, val = x.split(/=/,2) val = val ? HTTPUtils::dequote(val) : "" case key when "$Version"; ver = val.to_i when "$Path"; cookie.path = val when "$Domain"; cookie.domain = val when "$Port"; cookie.port = val else ret << cookie if cookie cookie = self.new(key, val) cookie.version = ver end } ret << cookie if cookie ret end end
Public Instance Methods
expires()
click to toggle source
Retrieves the expiration time as a Time
# File lib/webrick/cookie.rb, line 86 def expires @expires && Time.parse(@expires) end
expires=(t)
click to toggle source
Sets the cookie expiration to the time t
. The expiration time
may be a false value to disable expiration or a Time or HTTP format time string to set the
expiration date.
# File lib/webrick/cookie.rb, line 79 def expires=(t) @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s) end
to_s()
click to toggle source
The cookie string suitable for use in an HTTP header
# File lib/webrick/cookie.rb, line 93 def to_s ret = "" ret << @name << "=" << @value ret << "; " << "Version=" << @version.to_s if @version > 0 ret << "; " << "Domain=" << @domain if @domain ret << "; " << "Expires=" << @expires if @expires ret << "; " << "Max-Age=" << @max_age.to_s if @max_age ret << "; " << "Comment=" << @comment if @comment ret << "; " << "Path=" << @path if @path ret << "; " << "Secure" if @secure ret end