class AppHealth::Server

Attributes

checked[RW]
code[RW]
duration[RW]
host[RW]
message[RW]

Public Class Methods

new(host) click to toggle source
# File lib/apphealth/server.rb, line 5
def initialize(host)
  @host = host
  @checked = false
  @message = nil
  @code = nil
  @duration = nil
end

Public Instance Methods

check(uri) click to toggle source
# File lib/apphealth/server.rb, line 17
def check(uri)
  return self if checked

  benchmark = Benchmark.measure do
    request = make_request(uri)

    @code = request.code
    @message = request.message
  end

  @duration = (benchmark.real*1000).round
  @checked = true

  self
end
unchecked?() click to toggle source
# File lib/apphealth/server.rb, line 13
def unchecked?
  @checked == false
end

Private Instance Methods

make_request(uri) click to toggle source
# File lib/apphealth/server.rb, line 34
def make_request(uri)
  Net::HTTP.start(host) do |http|
    uri.path = "/" if uri.path == ""
    request = Net::HTTP::Get.new(uri.path)
    request['Host'] = uri.host

    http.request(request)
  end
end