Class | WEBrick::Cookie |
In: |
lib/webrick/cookie.rb
|
Parent: | Object |
comment | [RW] | |
domain | [RW] | |
max_age | [RW] | |
name | [R] | |
path | [RW] | |
secure | [RW] | |
value | [RW] | |
version | [RW] |
attr_accessor :comment_url, :discard, :port
# File lib/webrick/cookie.rb, line 23 23: def initialize(name, value) 24: @name = name 25: @value = value 26: @version = 0 # Netscape Cookie 27: 28: @domain = @path = @secure = @comment = @max_age = 29: @expires = @comment_url = @discard = @port = nil 30: end
Cookie::parse()
It parses Cookie field sent from the user agent.
# File lib/webrick/cookie.rb, line 55 55: def self.parse(str) 56: if str 57: ret = [] 58: cookie = nil 59: ver = 0 60: str.split(/[;,]\s+/).each{|x| 61: key, val = x.split(/=/,2) 62: val = val ? HTTPUtils::dequote(val) : "" 63: case key 64: when "$Version"; ver = val.to_i 65: when "$Path"; cookie.path = val 66: when "$Domain"; cookie.domain = val 67: when "$Port"; cookie.port = val 68: else 69: ret << cookie if cookie 70: cookie = self.new(key, val) 71: cookie.version = ver 72: end 73: } 74: ret << cookie if cookie 75: ret 76: end 77: end
# File lib/webrick/cookie.rb, line 79 79: def self.parse_set_cookie(str) 80: cookie_elem = str.split(/;/) 81: first_elem = cookie_elem.shift 82: first_elem.strip! 83: key, value = first_elem.split(/=/, 2) 84: cookie = new(key, HTTPUtils.dequote(value)) 85: cookie_elem.each{|pair| 86: pair.strip! 87: key, value = pair.split(/=/, 2) 88: if value 89: value = HTTPUtils.dequote(value.strip) 90: end 91: case key.downcase 92: when "domain" then cookie.domain = value 93: when "path" then cookie.path = value 94: when "expires" then cookie.expires = value 95: when "max-age" then cookie.max_age = Integer(value) 96: when "comment" then cookie.comment = value 97: when "version" then cookie.version = Integer(value) 98: when "secure" then cookie.secure = true 99: end 100: } 101: return cookie 102: end
# File lib/webrick/cookie.rb, line 104 104: def self.parse_set_cookies(str) 105: return str.split(/,(?=[^;,]*=)|,$/).collect{|c| 106: parse_set_cookie(c) 107: } 108: end
# File lib/webrick/cookie.rb, line 32 32: def expires=(t) 33: @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s) 34: end
# File lib/webrick/cookie.rb, line 40 40: def to_s 41: ret = "" 42: ret << @name << "=" << @value 43: ret << "; " << "Version=" << @version.to_s if @version > 0 44: ret << "; " << "Domain=" << @domain if @domain 45: ret << "; " << "Expires=" << @expires if @expires 46: ret << "; " << "Max-Age=" << @max_age.to_s if @max_age 47: ret << "; " << "Comment=" << @comment if @comment 48: ret << "; " << "Path=" << @path if @path 49: ret << "; " << "Secure" if @secure 50: ret 51: end