Files
mock-gui/classes/config.rb
2025-11-15 23:42:24 +03:00

124 lines
4.5 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
require "inifile"
# Класс для работы с конфигурацией INI-файла
class IniConfig
attr :path
# Конструктор класса, принимает путь к INI-файлу и парсит его содержимое
def initialize(in_path = "config.ini")
@path = in_path
@config = {}
parse_ini
end
# Метод для парсинга INI-файла и загрузки его содержимого в хэш
def parse_ini()
return if path.nil?
return unless File.exist? path
@config = IniFile.load(path)
end
# Метод для получения порта сервера из конфигурации, если он задан, иначе возвращает значение по умолчанию (8080)
def get_port()
unless @config["server"]["port"].nil?
@config["server"]["port"].to_i
else
8080
end
end
# Метод для получения репозитория из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repo")
def get_repo()
unless @config["repo"]["repo"].nil?
@config["repo"]["repo"].to_s
else
"repo"
end
end
# Метод для получения базы данных из конфигурации, если она задана, иначе возвращает значение по умолчанию ("db")
def get_db()
unless @config["server"]["db"].nil?
@config["server"]["db"].to_s
else
"db"
end
end
# Метод для получения скрытых конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
def get_configs_hide()
unless @config["configs"]["hide"].nil?
@config["configs"]["hide"].split(",").map { |item| item.strip }
else
[]
end
end
# Метод для получения выбранных конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
def get_configs_selected()
unless @config["configs"]["selected"].nil?
@config["configs"]["selected"].split(",").map { |item| item.strip }
else
[]
end
end
# Метод для получения пути к проектам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("projects")
def get_projects_path()
unless @config["projects"]["path"].nil?
@config["projects"]["path"].to_s
else
"projects"
end
end
# Метод для получения пути к счетчику из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/counter")
def get_counter_path()
unless @config["counter"]["path"].nil?
@config["counter"]["path"].to_s
else
"locks/counter"
end
end
# Метод для получения пути к блокировке сборки из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/build")
def get_build_lock_path()
unless @config["build"]["path"].nil?
@config["build"]["path"].to_s
else
"locks/build"
end
end
# Метод для получения количества элементов на странице из конфигурации, если оно задано и больше нуля, иначе возвращает значение по умолчанию (30)
def get_items_per_page()
unless @config["pages"]["items_per_page"].nil?
res = @config["pages"]["items_per_page"].to_i
if res < 1
res = 30
end
res
else
30
end
end
# Метод для получения пути к ключам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("keys")
def get_keys_path()
unless @config["sign"]["path"].nil?
@config["sign"]["path"].to_s
else
"keys"
end
end
# Метод для получения пути к реповьюверу из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repoview")
def get_repoview_path()
unless @config["repoview"]["path"].nil?
@config["repoview"]["path"].to_s
else
"repoview"
end
end
end