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
Time
object. - 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: 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
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 |