static public Method

Cookie.parse(raw_cookie)

Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.

cookies = CGI::Cookie::parse("raw_cookie_string")
  # { "name1" => cookie1, "name2" => cookie2, ... }

Source Code

# File action_controller/cgi_ext/cookie.rb, line 88
def self.parse(raw_cookie)
  cookies = Hash.new([])

  if raw_cookie
    raw_cookie.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 cookies.has_key?(name)
        cookies[name] = new(name, *values)
      end
    end
  end

  cookies
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.