You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
4.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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