Object
# File lib/httpclient/cookie.rb, line 80
80: def discard?
81: @discard
82: end
# File lib/httpclient/cookie.rb, line 92
92: def domain_orig?
93: @domain_orig
94: end
# File lib/httpclient/cookie.rb, line 104
104: def flag
105: flg = 0
106: flg += USE if @use
107: flg += SECURE if @secure
108: flg += DOMAIN if @domain_orig
109: flg += PATH if @path_orig
110: flg += DISCARD if @discard
111: flg += OVERRIDE if @override
112: flg
113: end
# File lib/httpclient/cookie.rb, line 137
137: def join_quotedstr(array, sep)
138: ret = Array.new()
139: old_elem = nil
140: array.each{|elem|
141: if (elem.scan(/"/).length % 2) == 0
142: if old_elem
143: old_elem << sep << elem
144: else
145: ret << elem
146: old_elem = nil
147: end
148: else
149: if old_elem
150: old_elem << sep << elem
151: ret << old_elem
152: old_elem = nil
153: else
154: old_elem = elem.dup
155: end
156: end
157: }
158: ret
159: end
# File lib/httpclient/cookie.rb, line 125
125: def match?(url)
126: domainname = url.host
127: if (!domainname ||
128: !domain_match(domainname, @domain) ||
129: (@path && !head_match?(@path, url.path)) ||
130: (@secure && (url.scheme != 'https')) )
131: return false
132: else
133: return true
134: end
135: end
# File lib/httpclient/cookie.rb, line 100
100: def override?
101: @override
102: end
# File lib/httpclient/cookie.rb, line 161
161: def parse(str, url)
162: @url = url
163: # TODO: should not depend on join_quotedstr. scan with escape like CSV.
164: cookie_elem = str.split(/;/)
165: cookie_elem = join_quotedstr(cookie_elem, ';')
166: cookie_elem -= [""] # del empty elements, a cookie might included ";;"
167: first_elem = cookie_elem.shift
168: if first_elem !~ /([^=]*)(\=(.*))?/
169: return
170: ## raise ArgumentError 'invalid cookie value'
171: end
172: @name = $1.strip
173: @value = normalize_cookie_value($3)
174: cookie_elem.each{|pair|
175: key, value = pair.split(/=/, 2) ## value may nil
176: key.strip!
177: value = normalize_cookie_value(value)
178: case key.downcase
179: when 'domain'
180: @domain = value
181: when 'expires'
182: @expires = nil
183: begin
184: @expires = Time.parse(value).gmtime() if value
185: rescue ArgumentError
186: end
187: when 'path'
188: @path = value
189: when 'secure'
190: @secure = true ## value may nil, but must 'true'.
191: else
192: ## ignore
193: end
194: }
195: end
# File lib/httpclient/cookie.rb, line 96
96: def path_orig?
97: @path_orig
98: end
# File lib/httpclient/cookie.rb, line 88
88: def secure?
89: @secure
90: end
# File lib/httpclient/cookie.rb, line 115
115: def set_flag(flag)
116: flag = flag.to_i
117: @use = true if flag & USE > 0
118: @secure = true if flag & SECURE > 0
119: @domain_orig = true if flag & DOMAIN > 0
120: @path_orig = true if flag & PATH > 0
121: @discard = true if flag & DISCARD > 0
122: @override = true if flag & OVERRIDE > 0
123: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.