Class: WEBrick::Cookie
- Inherits:
-
Object
- Object
- WEBrick::Cookie
- Defined in:
- lib/webrick/cookie.rb
Overview
Processes HTTP cookies
Instance Attribute Summary collapse
-
#comment ⇒ Object
The cookie comment.
-
#domain ⇒ Object
The cookie domain.
-
#max_age ⇒ Object
The maximum age of the cookie.
-
#name ⇒ Object
readonly
The cookie name.
-
#path ⇒ Object
The cookie path.
-
#secure ⇒ Object
Is this a secure cookie?.
-
#value ⇒ Object
The cookie value.
-
#version ⇒ Object
The cookie version.
Class Method Summary collapse
-
.parse(str) ⇒ Object
Parses a Cookie field sent from the user-agent.
-
.parse_set_cookie(str) ⇒ Object
Parses the cookie in
str
. -
.parse_set_cookies(str) ⇒ Object
Parses the cookies in
str
.
Instance Method Summary collapse
-
#expires ⇒ Object
Retrieves the expiration time as a Time.
-
#expires=(t) ⇒ Object
Sets the cookie expiration to the time
t
. -
#initialize(name, value) ⇒ Cookie
constructor
Creates a new cookie with the given
name
andvalue
. -
#to_s ⇒ Object
The cookie string suitable for use in an HTTP header.
Constructor Details
#initialize(name, value) ⇒ Cookie
Creates a new cookie with the given name
and value
66 67 68 69 70 71 72 73 |
# File '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 |
Instance Attribute Details
#comment ⇒ Object
The cookie comment
54 55 56 |
# File 'lib/webrick/cookie.rb', line 54 def comment @comment end |
#domain ⇒ Object
The cookie domain
39 40 41 |
# File 'lib/webrick/cookie.rb', line 39 def domain @domain end |
#max_age ⇒ Object
The maximum age of the cookie
59 60 61 |
# File 'lib/webrick/cookie.rb', line 59 def max_age @max_age end |
#name ⇒ Object (readonly)
The cookie name
25 26 27 |
# File 'lib/webrick/cookie.rb', line 25 def name @name end |
#path ⇒ Object
The cookie path
44 45 46 |
# File 'lib/webrick/cookie.rb', line 44 def path @path end |
#secure ⇒ Object
Is this a secure cookie?
49 50 51 |
# File 'lib/webrick/cookie.rb', line 49 def secure @secure end |
#value ⇒ Object
The cookie value
30 31 32 |
# File 'lib/webrick/cookie.rb', line 30 def value @value end |
#version ⇒ Object
The cookie version
35 36 37 |
# File 'lib/webrick/cookie.rb', line 35 def version @version end |
Class Method Details
.parse(str) ⇒ Object
Parses a Cookie field sent from the user-agent. Returns an array of cookies.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# 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) ⇒ Object
Parses the cookie in str
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# 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) ⇒ Object
Parses the cookies in str
166 167 168 169 170 |
# File 'lib/webrick/cookie.rb', line 166 def self.(str) return str.split(/,(?=[^;,]*=)|,$/).collect{|c| (c) } end |
Instance Method Details
#expires ⇒ Object
Retrieves the expiration time as a Time
87 88 89 |
# File 'lib/webrick/cookie.rb', line 87 def expires @expires && Time.parse(@expires) end |
#expires=(t) ⇒ Object
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.
80 81 82 |
# File 'lib/webrick/cookie.rb', line 80 def expires=(t) @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s) end |
#to_s ⇒ Object
The cookie string suitable for use in an HTTP header
94 95 96 97 98 99 100 101 102 103 104 105 |
# 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 |