Sha256: 7412d82fae327ef0d21cf421be3c83f8c5e4ab46caa8b9451b66422b167981a9
Contents?: true
Size: 1.15 KB
Versions: 1
Compression:
Stored size: 1.15 KB
Contents
class ServerStatusApp < Sinatra::Base set :root, GEM_ROOT set :server, :thin class << self def check server server_config = ServerStatusConfig.servers[server.to_sym] client = ServerStatusClient.new server_config status_code = client.request.to_s Status.new server, server_config[:description.to_s], status_code, client.is_port_open? end end get '/' do @server_status = ServerStatusConfig.servers.keys.collect do |server| ServerStatusApp.check server end slim :index end get '/servers' do result = [] ServerStatusConfig.servers.each do |k, v| result.push({name: k, description: v[:description.to_s]}) end result.to_json end get '/:server/status' do ServerStatusApp.check(params[:server].to_sym).to_json end class Status attr_reader :code, :name, :description def initialize name, description, code, is_open @code, @name, @description, @is_open = code.to_i, name, description, is_open end def is_open? @is_open end def to_json {name: @name, code: @code, description: @description, is_open: @is_open}.to_json end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
server_status-0.1.1 | lib/server_status/app.rb |