Class: WEBrick::Cookie
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/webrick/cookie.rb |
Overview
Processes HTTP cookies
Class Method Summary
- .new(name, value) ⇒ Cookie constructor
-
.parse(str)
Parses a
Cookie
field sent from the user-agent. -
.parse_set_cookie(str)
Parses the cookie in
str
-
.parse_set_cookies(str)
Parses the cookies in
str
Instance Attribute Summary
-
#comment
rw
The cookie comment.
-
#domain
rw
The cookie domain.
-
#expires
rw
Retrieves the expiration time as a Time.
-
#expires=(t)
rw
Sets the cookie expiration to the time
t
. -
#max_age
rw
The maximum age of the cookie.
-
#path
rw
The cookie path.
-
#secure
rw
Is this a secure cookie?
-
#value
rw
The cookie value.
-
#version
rw
The cookie version.
-
#name
readonly
The cookie name.
Instance Method Summary
-
#to_s
The cookie string suitable for use in an HTTP header.
Constructor Details
.new(name, value) ⇒ Cookie
[ GitHub ]
Class Method Details
.parse(str)
Parses a Cookie
field sent from the user-agent. Returns an array of cookies.
# File 'lib/webrick/cookie.rb', line 111
def self.parse(str) if str ret = [] = 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"; .path = val when "$Domain"; .domain = val when "$Port"; .port = val else ret << if = self.new(key, val) .version = ver end } ret << if ret end end
.parse_set_cookie(str)
Parses the cookie in str
# File 'lib/webrick/cookie.rb', line 138
def self. (str) = str.split(/;/) first_elem = .shift first_elem.strip! key, value = first_elem.split(/=/, 2) = new(key, HTTPUtils.dequote(value)) .each{|pair| pair.strip! key, value = pair.split(/=/, 2) if value value = HTTPUtils.dequote(value.strip) end case key.downcase when "domain" then .domain = value when "path" then .path = value when "expires" then .expires = value when "max-age" then .max_age = Integer(value) when "comment" then .comment = value when "version" then .version = Integer(value) when "secure" then .secure = true end } return end
.parse_set_cookies(str)
Parses the cookies in str
# File 'lib/webrick/cookie.rb', line 166
def self. (str) return str.split(/,(?=[^;,]*=)|,$/).collect{|c| (c) } end
Instance Attribute Details
#comment (rw)
The cookie comment
# File 'lib/webrick/cookie.rb', line 54
attr_accessor :comment
#domain (rw)
The cookie domain
# File 'lib/webrick/cookie.rb', line 39
attr_accessor :domain
#expires (rw)
Retrieves the expiration time as a Time
# File 'lib/webrick/cookie.rb', line 87
def expires @expires && Time.parse(@expires) end
#expires=(t) (rw)
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 80
def expires=(t) @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s) end
#max_age (rw)
The maximum age of the cookie
# File 'lib/webrick/cookie.rb', line 59
attr_accessor :max_age
#name (readonly)
The cookie name
# File 'lib/webrick/cookie.rb', line 25
attr_reader :name
#path (rw)
The cookie path
# File 'lib/webrick/cookie.rb', line 44
attr_accessor :path
#secure (rw)
Is this a secure cookie?
# File 'lib/webrick/cookie.rb', line 49
attr_accessor :secure
#value (rw)
The cookie value
# File 'lib/webrick/cookie.rb', line 30
attr_accessor :value
#version (rw)
The cookie version
# File 'lib/webrick/cookie.rb', line 35
attr_accessor :version
Instance Method Details
#to_s
The cookie string suitable for use in an HTTP header
# File '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