Class WWW::Mechanize::Cookie
In: lib/www/mechanize/cookie.rb
Parent: WEBrick::Cookie
Mechanize\n[lib/www/mechanize.rb\nlib/www/mechanize/chain.rb\nlib/www/mechanize/chain/auth_headers.rb\nlib/www/mechanize/chain/body_decoding_handler.rb\nlib/www/mechanize/chain/connection_resolver.rb\nlib/www/mechanize/chain/custom_headers.rb\nlib/www/mechanize/chain/header_resolver.rb\nlib/www/mechanize/chain/parameter_resolver.rb\nlib/www/mechanize/chain/pre_connect_hook.rb\nlib/www/mechanize/chain/request_resolver.rb\nlib/www/mechanize/chain/response_body_parser.rb\nlib/www/mechanize/chain/response_header_handler.rb\nlib/www/mechanize/chain/response_reader.rb\nlib/www/mechanize/chain/ssl_resolver.rb\nlib/www/mechanize/chain/uri_resolver.rb\nlib/www/mechanize/content_type_error.rb\nlib/www/mechanize/cookie.rb\nlib/www/mechanize/cookie_jar.rb\nlib/www/mechanize/file.rb\nlib/www/mechanize/file_response.rb\nlib/www/mechanize/file_saver.rb\nlib/www/mechanize/form.rb\nlib/www/mechanize/form/button.rb\nlib/www/mechanize/form/check_box.rb\nlib/www/mechanize/form/field.rb\nlib/www/mechanize/form/file_upload.rb\nlib/www/mechanize/form/image_button.rb\nlib/www/mechanize/form/multi_select_list.rb\nlib/www/mechanize/form/option.rb\nlib/www/mechanize/form/radio_button.rb\nlib/www/mechanize/form/select_list.rb\nlib/www/mechanize/headers.rb\nlib/www/mechanize/history.rb\nlib/www/mechanize/monkey_patch.rb\nlib/www/mechanize/page.rb\nlib/www/mechanize/page/base.rb\nlib/www/mechanize/page/frame.rb\nlib/www/mechanize/page/link.rb\nlib/www/mechanize/page/meta.rb\nlib/www/mechanize/pluggable_parsers.rb\nlib/www/mechanize/redirect_limit_reached_error.rb\nlib/www/mechanize/redirect_not_get_or_head_error.rb\nlib/www/mechanize/response_code_error.rb\nlib/www/mechanize/unsupported_scheme_error.rb\nlib/www/mechanize/util.rb] lib/www/mechanize.rb Handler WWW dot/m_52_0.png

This class is used to represent an HTTP Cookie.

Methods

parse   to_s  

Public Class methods

[Source]

    # File lib/www/mechanize/cookie.rb, line 8
 8:       def self.parse(uri, str, log = Mechanize.log)
 9:         return str.split(/,(?=[^;,]*=)|,$/).collect { |c|
10:           cookie_elem = c.split(/;+/)
11:           first_elem = cookie_elem.shift
12:           first_elem.strip!
13:           key, value = first_elem.split(/=/, 2)
14: 
15:           cookie = nil
16:           begin
17:             cookie = new(key, WEBrick::HTTPUtils.dequote(value))
18:           rescue
19:             log.warn("Couldn't parse key/value: #{first_elem}") if log
20:           end
21:           next unless cookie
22: 
23:           cookie_elem.each{|pair|
24:             pair.strip!
25:             key, value = pair.split(/=/, 2)
26:             if value
27:               value = WEBrick::HTTPUtils.dequote(value.strip)
28:             end
29:             case key.downcase
30:             when "domain"  then cookie.domain  = value.sub(/^\./, '')
31:             when "path"    then cookie.path    = value
32:             when 'expires'
33:               begin
34:                 cookie.expires = Time::parse(value)
35:               rescue
36:                 if log
37:                   log.warn("Couldn't parse expires: #{value}")
38:                 end
39:               end
40:             when "max-age" then
41:               begin
42:                 cookie.max_age = Integer(value)
43:               rescue
44:                 log.warn("Couldn't parse max age '#{value}'") if log
45:                 cookie.max_age = nil
46:               end
47:             when "comment" then cookie.comment = value
48:             when "version" then
49:               begin
50:                 cookie.version = Integer(value)
51:               rescue
52:                 log.warn("Couldn't parse version '#{value}'") if log
53:                 cookie.version = nil
54:               end
55:             when "secure"  then cookie.secure = true
56:             end
57:           }
58: 
59:           cookie.path    ||= uri.path.to_s.sub(/[^\/]*$/, '')
60:           cookie.secure  ||= false
61:           cookie.domain  ||= uri.host
62:           # Move this in to the cookie jar
63:           yield cookie if block_given?
64:         }
65:       end

Public Instance methods

[Source]

    # File lib/www/mechanize/cookie.rb, line 67
67:       def to_s
68:         "#{@name}=#{@value}"
69:       end

[Validate]