Class: SlowServer::Client
- Inherits:
-
Object
- Object
- SlowServer::Client
- Defined in:
- lib/slow_server/client.rb
Instance Method Summary collapse
- #chunk_size ⇒ Object
- #chunks ⇒ Object
- #config ⇒ Object
- #get_response(socket) ⇒ Object
- #request_body ⇒ Object
- #send_request(socket) ⇒ Object
- #start ⇒ Object
Instance Method Details
#chunk_size ⇒ Object
11 12 13 |
# File 'lib/slow_server/client.rb', line 11 def chunk_size (request_body.size / config.chunks.to_f).round end |
#chunks ⇒ Object
15 16 17 |
# File 'lib/slow_server/client.rb', line 15 def chunks request_body.scan(/.{1,#{chunk_size}}/m) end |
#config ⇒ Object
7 8 9 |
# File 'lib/slow_server/client.rb', line 7 def config @config ||= ClientConfig.new end |
#get_response(socket) ⇒ Object
36 37 38 39 40 41 |
# 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 ⇒ Object
19 20 21 22 23 24 |
# 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) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# 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 ⇒ Object
43 44 45 46 47 48 49 50 |
# 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 |