Class: Pact::MockService::Server::WaitForServerUp

Inherits:
Object
  • Object
show all
Defined in:
lib/pact/mock_service/server/wait_for_server_up.rb

Class Method Summary collapse

Class Method Details

.call(port, options = {ssl: false}) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/pact/mock_service/server/wait_for_server_up.rb', line 9

def self.call(port, options = {ssl: false})
  tries = 0
  responsive = false
  while !(responsive = responsive?(port, options)) && tries < 100
    tries += 1
    sleep 1
  end
  raise "Timed out waiting for server to start up on port #{port}" if !responsive
end

.responsive?(port, options) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pact/mock_service/server/wait_for_server_up.rb', line 19

def self.responsive? port, options
  res = Net::HTTP.start("localhost", port) do |http|
    request = Net::HTTP::Get.new "http://localhost:#{port}/"
    request['X-Pact-Mock-Service'] = 'true'
    response = http.request request
  end
  res.code == '200'
rescue SystemCallError => e
  return false
rescue EOFError
  return false
end