class Kageuchi::Server
Attributes
logs[R]
status[R]
Public Class Methods
new(port)
click to toggle source
# File lib/kageuchi/server.rb, line 9 def initialize(port) @port = port @logs = [] @status = :created end
Public Instance Methods
close()
click to toggle source
# File lib/kageuchi/server.rb, line 48 def close @server.close @status = :closed end
start()
click to toggle source
# File lib/kageuchi/server.rb, line 15 def start @server = TCPServer.open(@port) loop do socket = @server.accept match = socket.gets.chomp.match(/^(?<verb>[A-Z]*) (?<path>[^ ]*) (?<ver>.*)$/) if match headers = [] while line = socket.gets.chomp break if line.bytesize.zero? headers << line.split(": ") end request = { VERB: match[:verb], PATH: match[:path], VERSION: match[:ver], HEDERS: headers } @logs << request pp request end @status = :running next unless line.bytesize.zero? socket.write "HTTP/1.1 200 OK\r\n" socket.write "\r\n" socket.write "Hello. This is Kageuchi server\r\n" socket.close end end