In Files

  • webrick/cookie.rb
  • webrick/httprequest.rb

WEBrick::Cookie

Processes HTTP cookies

Attributes

comment[RW]

The cookie comment

domain[RW]

The cookie domain

max_age[RW]

The maximum age of the cookie

name[R]

The cookie name

path[RW]

The cookie path

secure[RW]

Is this a secure cookie?

value[RW]

The cookie value

version[RW]

The cookie version

Public Class Methods

new(name, value) click to toggle source

Creates a new cookie with the given name and value

 
               # File webrick/cookie.rb, line 65
def initialize(name, value)
  @name = name
  @value = value
  @version = 0     # Netscape Cookie

  @domain = @path = @secure = @comment = @max_age =
  @expires = @comment_url = @discard = @port = nil
end
            
parse(str) click to toggle source

Parses a Cookie field sent from the user-agent. Returns an array of cookies.

 
               # File webrick/cookie.rb, line 110
def self.parse(str)
  if str
    ret = []
    cookie = nil
    ver = 0
    str.split(/[;,]\s+/).each{|x|
      key, val = x.split(/=/,2)
      val = val ? HTTPUtils::dequote(val) : ""
      case key
      when "$Version"; ver = val.to_i
      when "$Path";    cookie.path = val
      when "$Domain";  cookie.domain = val
      when "$Port";    cookie.port = val
      else
        ret << cookie if cookie
        cookie = self.new(key, val)
        cookie.version = ver
      end
    }
    ret << cookie if cookie
    ret
  end
end
            
parse_set_cookies(str) click to toggle source

Parses the cookies in str

 
               # File webrick/cookie.rb, line 165
def self.parse_set_cookies(str)
  return str.split(/,(?=[^;,]*=)|,$/).collect{|c|
    parse_set_cookie(c)
  }
end
            

Public Instance Methods

expires() click to toggle source

Retrieves the expiration time as a Time

 
               # File webrick/cookie.rb, line 86
def expires
  @expires && Time.parse(@expires)
end
            
expires=(t) click to toggle source

Sets the cookie expiration to the time t. The expiration time may be a false value to disable expiration or a Time or HTTP format time string to set the expiration date.

 
               # File webrick/cookie.rb, line 79
def expires=(t)
  @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s)
end
            
to_s() click to toggle source

The cookie string suitable for use in an HTTP header

 
               # File webrick/cookie.rb, line 93
def to_s
  ret = ""
  ret << @name << "=" << @value
  ret << "; " << "Version=" << @version.to_s if @version > 0
  ret << "; " << "Domain="  << @domain  if @domain
  ret << "; " << "Expires=" << @expires if @expires
  ret << "; " << "Max-Age=" << @max_age.to_s if @max_age
  ret << "; " << "Comment=" << @comment if @comment
  ret << "; " << "Path="    << @path if @path
  ret << "; " << "Secure"   if @secure
  ret
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus