# class WebSocket::HTTP::Request

### Constants

REQUEST_LINE
REQUEST_TARGET
RESERVED_HEADERS

### Attributes

env[R]

### Private Instance Methods

complete() click to toggle source
Calls superclass method `WebSocket::HTTP::Headers#complete`

    # File lib/websocket/http/request.rb, line 29
    def complete
      super
      @headers.each do |name, value|
        rack_name = name.upcase.gsub(/-/, '_')
        rack_name = "HTTP_#{ rack_name }" unless RESERVED_HEADERS.include?(name)
        @env[rack_name] = value
      end
      if host = @env['HTTP_HOST']
        uri = URI.parse("http://#{ host }")
        @env['SERVER_NAME'] = uri.host
        @env['SERVER_PORT'] = uri.port.to_s
      end
    end

start_line(line) click to toggle source

    # File lib/websocket/http/request.rb, line 15
    def start_line(line)
      return false unless parsed = line.scan(REQUEST_LINE).first

      target = parsed[1].scan(REQUEST_TARGET).first

      @env = {
        'REQUEST_METHOD' => parsed[0],
        'SCRIPT_NAME'    => '',
        'PATH_INFO'      => target[0],
        'QUERY_STRING'   => target[2] || ''
      }
      true
    end