require "file" require "json" require "log" class ConfigInstance @@config = {} of String => JSON::Any @@loaded = false def config @@config end def config=(new_value) @@config = new_value end def loaded @@loaded end def loaded=(new_value) @@loaded = new_value end end Instance = ConfigInstance.new module Config extend self def get_config_value(key) : JSON::Any | Nil Log.debug { "looking for #{key}" } if Instance.config.has_key? key Instance.config[key] else nil end end def is_loaded : Bool Instance.loaded end def load_config : Nil loaded_config = File.open("config.json") do |file| Hash(String, JSON::Any).from_json(file) end Log.debug { "loaded config is #{loaded_config}" } Instance.config = loaded_config Instance.loaded = true Log.debug { "instance config is #{Instance.config}" } end end