class ConfigServer::App
Public Class Methods
new(config_file, logger_output = STDOUT)
click to toggle source
# File lib/config_server/app.rb, line 7 def initialize(config_file, logger_output = STDOUT) @logger = Logger.new(logger_output) @logger.info "Starting config server with config:" @config = YAML.load_file(config_file) @logger.info @config end
Public Instance Methods
call(env)
click to toggle source
# File lib/config_server/app.rb, line 14 def call(env) request_path = env['PATH_INFO'] @logger.info "Got request for #{request_path}" value = (request_path == "/ping" && "PONG") || get_key_from_yaml(request_path) if value ['200', {'Content-Type' => 'text/plain'}, [value]] else ['404', {'Content-Type' => 'text/plain'}, []] end end
Private Instance Methods
get_key_from_yaml(path)
click to toggle source
# File lib/config_server/app.rb, line 27 def get_key_from_yaml(path) keys = path.split("/").reject(&:empty?) val = keys.inject(@config, &:fetch) if val.is_a?(Hash) || val.is_a?(Array) val.to_json else val.to_s end rescue nil end