Processes HTTP cookies
Creates a new cookie with the given name and
value
# File 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
Parses a Cookie field sent from the user-agent. Returns an array of cookies.
# File 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
Retrieves the expiration time as a Time
# File webrick/cookie.rb, line 86
def expires
@expires && Time.parse(@expires)
end
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 webrick/cookie.rb, line 79
def expires=(t)
@expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s)
end
The cookie string suitable for use in an HTTP header
# File 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
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.
The cookie comment