class OneApi::DummyWebServer

Web server, to be used only in examples

Attributes

requests[RW]

Public Class Methods

new(ip_address, port) click to toggle source
# File lib/oneapi-ruby/utils.rb, line 103
def initialize(ip_address, port)
    @webserver = TCPServer.new(ip_address, port)
    @session = nil
    @requests = []
end

Public Instance Methods

parse_request_string(request_string) click to toggle source
# File lib/oneapi-ruby/utils.rb, line 131
def parse_request_string request_string
    lines = request_string.split(/\n/)
    method, url, http_version = lines[0].split(' ')
    headers = {}
    body = nil
    for line in lines[1,lines.length]
        if body == nil
            if line.strip == ''
                body = ''
            else
                index = line.index ':'
                key = line[0,index].strip
                value = line[index + 1, line.length].strip
                headers[key] = value
            end
        end

        if body != nil
            body += line + "\n"
        end
    end
    return method, url, headers, body.strip
end
start(seconds) click to toggle source
# File lib/oneapi-ruby/utils.rb, line 109
def start(seconds)
    Thread.new {
        while (@session = @webserver.accept)
            request_string = @session.sysread 10000
            @session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"
            @session.print("OK")
            @session.close
            @requests.push(parse_request_string request_string)
        end
    }

    sleep(seconds)

    @webserver.close
    if @session != nil
        begin
            @session.close
        rescue
        end
    end
end