class LibWebSocket::Cookie::Request

Construct or parse a WebSocket request cookie.

Attributes

domain[RW]
name[RW]
path[RW]
value[RW]
version[RW]

Public Instance Methods

parse(string) click to toggle source

Parse a WebSocket request cookie. @example

cookie = LibWebSocket::Cookie::Request.new
cookies = cookie.parse('$Version=1; foo="bar"; $Path=/; bar=baz; $Domain=.example.com')
# File lib/libwebsocket/cookie/request.rb, line 12
def parse(string)
  result = super
  return unless result

  cookies = []

  pair = self.pairs.shift
  version = pair[1]

  cookie = nil
  self.pairs.each do |pair|
    next unless pair[0]

    if pair[0].match(%r^[^\$]/)
      cookies.push(cookie) if cookie

      cookie = self.build_cookie(:name => pair[0], :value => pair[1], :version => version)
    elsif pair[0] == '$Path'
      cookie.path = pair[1]
    elsif pair[0] == '$Domain'
      cookie.domain = pair[1]
    end
  end

  cookies.push(cookie) if cookie

  return cookies
end

Protected Instance Methods