Class: CGI::Cookie
- Defined in:
- lib/action_controller/cgi_ext/cookie.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#domain ⇒ Object
Returns the value of attribute domain.
-
#expires ⇒ Object
Returns the value of attribute expires.
-
#http_only ⇒ Object
Returns the value of attribute http_only.
-
#name ⇒ Object
Returns the value of attribute name.
-
#path ⇒ Object
Returns the value of attribute path.
-
#secure ⇒ Object
Returns the value of attribute secure.
-
#value ⇒ Object
Returns the value of attribute value.
Class Method Summary collapse
-
.parse(raw_cookie) ⇒ Object
Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.
Instance Method Summary collapse
-
#initialize(name = '', *value) ⇒ Cookie
constructor
Create a new CGI::Cookie object.
-
#to_s ⇒ Object
Convert the Cookie to its string representation.
Constructor Details
#initialize(name = '', *value) ⇒ Cookie
Create a new CGI::Cookie object.
The contents of the cookie can be specified as a name and one
or more value arguments. Alternatively, the contents can
be specified as a single hash argument. The possible keywords of
this hash are as follows:
- name
the name of the cookie. Required.
- value
the cookie's value or list of values.
- path
the path for which this cookie applies. Defaults to the base directory of the CGI script.
- domain
the domain for which this cookie applies.
- expires
the time at which this cookie expires, as a
Timeobject.- secure
whether this cookie is a secure cookie or not (default to false). Secure cookies are only transmitted to HTTPS servers.
- http_only
whether this cookie can be accessed by client side scripts (e.g. document.cookie) or only over HTTP More details: http://msdn2.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx Defaults to false.
These keywords correspond to attributes of the cookie object.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 29 def initialize(name = '', *value) if name.kind_of?(String) @name = name @value = Array(value) @domain = nil @expires = nil @secure = false @http_only = false @path = nil else @name = name['name'] @value = Array(name['value']) @domain = name['domain'] @expires = name['expires'] @secure = name['secure'] || false @http_only = name['http_only'] || false @path = name['path'] end raise ArgumentError, "`name' required" unless @name # simple support for IE unless @path %r|^(.*/)|.match(ENV['SCRIPT_NAME']) @path = ($1 or '') end super(@value) end |
Instance Attribute Details
#domain ⇒ Object
Returns the value of attribute domain.
6 7 8 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 6 def domain @domain end |
#expires ⇒ Object
Returns the value of attribute expires.
6 7 8 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 6 def expires @expires end |
#http_only ⇒ Object
Returns the value of attribute http_only.
7 8 9 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 7 def http_only @http_only end |
#name ⇒ Object
Returns the value of attribute name.
6 7 8 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 6 def name @name end |
#path ⇒ Object
Returns the value of attribute path.
6 7 8 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 6 def path @path end |
#secure ⇒ Object
Returns the value of attribute secure.
7 8 9 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 7 def secure @secure end |
#value ⇒ Object
Returns the value of attribute value.
6 7 8 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 6 def value @value end |
Class Method Details
.parse(raw_cookie) ⇒ Object
Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.
= CGI::Cookie::parse("raw_cookie_string")
# { "name1" => cookie1, "name2" => cookie2, ... }
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 88 def self.parse() = Hash.new([]) if .split(/[;,]\s?/).each do |pairs| name, values = pairs.split('=',2) next unless name and values name = CGI::unescape(name) values = values.split('&').collect!{|v| CGI::unescape(v) } unless .has_key?(name) [name] = new(name, *values) end end end end |
Instance Method Details
#to_s ⇒ Object
Convert the Cookie to its string representation.
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/action_controller/cgi_ext/cookie.rb', line 70 def to_s buf = '' buf << @name << '=' buf << (@value.kind_of?(String) ? CGI::escape(@value) : @value.collect{|v| CGI::escape(v) }.join("&")) buf << '; domain=' << @domain if @domain buf << '; path=' << @path if @path buf << '; expires=' << CGI::rfc1123_date(@expires) if @expires buf << '; secure' if @secure buf << '; HttpOnly' if @http_only buf end |