Class: What::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/what/server.rb

Instance Method Summary collapse

Constructor Details

#initializeServer

Returns a new instance of Server.



3
4
5
6
7
8
# File 'lib/what/server.rb', line 3

def initialize
  Modules.load_all
  Formatters.load_all
  @monitor = Monitor.new
  @monitor.go!
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/what/server.rb', line 10

def call(env)
  if Config['secret_token'] && Config['secret_token'] != env['QUERY_STRING']
    [403, {'Content-Type' => 'text/plain'}, ["403 Forbidden\n"]]
  else
    status = @monitor.status
    [
      status['health'] != 'alert' ? 200 : 503,
      {'Content-Type' => Formatter.mime},
      [Formatter.format(status)]
    ]
  end
end