class SlowServer::Client
Public Instance Methods
chunk_size()
click to toggle source
# File lib/slow_server/client.rb, line 11 def chunk_size (request_body.size / config.chunks.to_f).round end
chunks()
click to toggle source
# File lib/slow_server/client.rb, line 15 def chunks request_body.scan(/.{1,#{chunk_size}}/m) end
config()
click to toggle source
# File lib/slow_server/client.rb, line 7 def config @config ||= ClientConfig.new end
get_response(socket)
click to toggle source
# File lib/slow_server/client.rb, line 36 def get_response(socket) response = socket.read headers,body = response.split("\r\n\r\n", 2) STDERR.puts "\n" print body end
request_body()
click to toggle source
# File lib/slow_server/client.rb, line 19 def request_body [].tap do |req| req << [config.request_method, config.request_uri].join(" ") req += config.request_headers end.join("\n") end
send_request(socket)
click to toggle source
# File lib/slow_server/client.rb, line 26 def send_request(socket) chunks.each do |chunk| STDERR.puts "Sending #{chunk_size} bytes" socket.print chunk STDERR.puts "Waiting for #{config.chunk_delay} seconds" sleep config.chunk_delay end socket.print("\r\n\r\n") end
start()
click to toggle source
# File lib/slow_server/client.rb, line 43 def start TCPSocket.open(config.host, config.port) do |socket| STDERR.puts "Waiting for #{config.response_delay} seconds" sleep config.response_delay send_request(socket) get_response(socket) end end