Files
mock-gui/classes/config.rb

124 lines
4.5 KiB
Ruby
Raw Normal View History

2025-02-17 17:21:56 +03:00
require "inifile"
2025-11-15 23:42:24 +03:00
# Класс для работы с конфигурацией INI-файла
2025-02-17 17:21:56 +03:00
class IniConfig
attr :path
2025-11-15 23:42:24 +03:00
# Конструктор класса, принимает путь к INI-файлу и парсит его содержимое
2025-02-17 17:21:56 +03:00
def initialize(in_path = "config.ini")
@path = in_path
@config = {}
parse_ini
end
2025-11-15 23:42:24 +03:00
# Метод для парсинга INI-файла и загрузки его содержимого в хэш
2025-02-17 17:21:56 +03:00
def parse_ini()
return if path.nil?
return unless File.exist? path
@config = IniFile.load(path)
end
2025-11-15 23:42:24 +03:00
# Метод для получения порта сервера из конфигурации, если он задан, иначе возвращает значение по умолчанию (8080)
2025-02-17 17:21:56 +03:00
def get_port()
unless @config["server"]["port"].nil?
@config["server"]["port"].to_i
else
8080
end
end
2025-11-15 23:42:24 +03:00
# Метод для получения репозитория из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repo")
2025-02-17 17:21:56 +03:00
def get_repo()
unless @config["repo"]["repo"].nil?
@config["repo"]["repo"].to_s
else
"repo"
end
end
2025-11-15 23:42:24 +03:00
# Метод для получения базы данных из конфигурации, если она задана, иначе возвращает значение по умолчанию ("db")
2025-02-17 17:21:56 +03:00
def get_db()
unless @config["server"]["db"].nil?
@config["server"]["db"].to_s
else
"db"
end
end
2025-02-23 23:06:42 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения скрытых конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
2025-02-23 23:06:42 +03:00
def get_configs_hide()
unless @config["configs"]["hide"].nil?
@config["configs"]["hide"].split(",").map { |item| item.strip }
else
[]
end
end
2025-11-15 23:42:24 +03:00
# Метод для получения выбранных конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
2025-02-23 23:06:42 +03:00
def get_configs_selected()
unless @config["configs"]["selected"].nil?
@config["configs"]["selected"].split(",").map { |item| item.strip }
else
[]
end
end
2025-02-23 23:59:45 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения пути к проектам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("projects")
2025-02-23 23:59:45 +03:00
def get_projects_path()
unless @config["projects"]["path"].nil?
@config["projects"]["path"].to_s
else
"projects"
end
end
2025-03-11 23:54:19 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения пути к счетчику из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/counter")
2025-03-11 23:54:19 +03:00
def get_counter_path()
unless @config["counter"]["path"].nil?
@config["counter"]["path"].to_s
else
"locks/counter"
end
end
2025-03-16 00:12:37 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения пути к блокировке сборки из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/build")
def get_build_lock_path()
unless @config["build"]["path"].nil?
@config["build"]["path"].to_s
else
"locks/build"
end
end
2025-11-15 23:42:24 +03:00
# Метод для получения количества элементов на странице из конфигурации, если оно задано и больше нуля, иначе возвращает значение по умолчанию (30)
2025-03-16 00:12:37 +03:00
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
2025-03-21 00:02:18 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения пути к ключам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("keys")
2025-03-21 00:02:18 +03:00
def get_keys_path()
unless @config["sign"]["path"].nil?
@config["sign"]["path"].to_s
else
"keys"
end
end
2025-03-21 23:15:46 +03:00
2025-11-15 23:42:24 +03:00
# Метод для получения пути к реповьюверу из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repoview")
2025-03-21 23:15:46 +03:00
def get_repoview_path()
unless @config["repoview"]["path"].nil?
@config["repoview"]["path"].to_s
else
"repoview"
end
end
2025-02-17 17:21:56 +03:00
end