class Raykit::Configuration
def initialize
def initialize if File.exist?(CONFIG_FILE) load_configuration else set_default_configuration if (!Dir.exist?(CONFIG_DIR)) save_configuration # Save the default configuration if no configuration file exists. end end end
def load_configuration
def load_configuration config_data = JSON.parse(File.read(CONFIG_FILE)) @root_dir = config_data["root_dir"] @auto_setup = config_data["auto_setup"] @backup_dir = config_data["backup_dir"] @log_level = config_data["log_level"] end
def save_configuration
def save_configuration # Create the config directory if it doesn't exist. FileUtils.mkdir_p(CONFIG_DIR) unless Dir.exist?(CONFIG_DIR) File.write(CONFIG_FILE, { root_dir: @root_dir, auto_setup: @auto_setup, backup_dir: @backup_dir, log_level: @log_level, }.to_json) end
def set_default_configuration
def set_default_configuration @root_dir = "" @auto_setup = false @backup_dir = "backup" @log_level = ::Logger::DEBUG end
def to_s
def to_s "Root Directory: #{@root_dir}\nAuto Setup: #{@auto_setup}\nBackup Directory: #{@backup_dir}" end