Class: Gemkeeper::ServerReadinessProbe

Inherits:
Object
  • Object
show all
Defined in:
lib/gemkeeper/server_readiness_probe.rb

Overview

Polls the server’s HTTP endpoint until it responds or a timeout is reached.

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ ServerReadinessProbe

Returns a new instance of ServerReadinessProbe.



8
9
10
# File 'lib/gemkeeper/server_readiness_probe.rb', line 8

def initialize(url)
  @uri = URI(url)
end

Instance Method Details

#wait(timeout: 10) ⇒ Object

Raises:



12
13
14
15
16
17
18
19
# File 'lib/gemkeeper/server_readiness_probe.rb', line 12

def wait(timeout: 10)
  (timeout / 0.5).ceil.times do
    return true if responding?

    sleep 0.5
  end
  raise ServerError, "Server failed to start within #{timeout} seconds"
end