Class
Processes HTTP cookies
Attributes
Read
The cookie name
Read & Write
The cookie value
Read & Write
The cookie version
Read & Write
The cookie domain
Read & Write
The cookie path
Read & Write
Is this a secure cookie?
Read & Write
The cookie comment
Read & Write
The maximum age of the cookie
Class Methods
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 66
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
Creates a new cookie with the given name
and value
::
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 111
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
Parses a Cookie
field sent from the user-agent. Returns an array of cookies.
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 138
def self.parse_set_cookie(str)
cookie_elem = str.split(/;/)
first_elem = cookie_elem.shift
first_elem.strip!
key, value = first_elem.split(/=/, 2)
cookie = new(key, HTTPUtils.dequote(value))
cookie_elem.each{|pair|
pair.strip!
key, value = pair.split(/=/, 2)
if value
value = HTTPUtils.dequote(value.strip)
end
case key.downcase
when "domain" then cookie.domain = value
when "path" then cookie.path = value
when "expires" then cookie.expires = value
when "max-age" then cookie.max_age = Integer(value)
when "comment" then cookie.comment = value
when "version" then cookie.version = Integer(value)
when "secure" then cookie.secure = true
end
}
return cookie
end
Parses the cookie in str
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 166
def self.parse_set_cookies(str)
return str.split(/,(?=[^;,]*=)|,$/).collect{|c|
parse_set_cookie(c)
}
end
Parses the cookies in str
Instance Methods
#
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 87
def expires
@expires && Time.parse(@expires)
end
Retrieves the expiration time as a Time
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 80
def expires=(t)
@expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s)
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.
#
lib/webrick/cookie.rb
View on GitHub
# File tmp/rubies/ruby-2.5.9/lib/webrick/cookie.rb, line 94
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
The cookie string suitable for use in an HTTP header