Added some comments

master
Alexey Berezhok 2 weeks ago
parent 89f92d265a
commit 54bf61d301

@ -1,20 +1,24 @@
require "inifile" require "inifile"
# Класс для работы с конфигурацией INI-файла
class IniConfig class IniConfig
attr :path attr :path
# Конструктор класса, принимает путь к INI-файлу и парсит его содержимое
def initialize(in_path = "config.ini") def initialize(in_path = "config.ini")
@path = in_path @path = in_path
@config = {} @config = {}
parse_ini parse_ini
end end
# Метод для парсинга INI-файла и загрузки его содержимого в хэш
def parse_ini() def parse_ini()
return if path.nil? return if path.nil?
return unless File.exist? path return unless File.exist? path
@config = IniFile.load(path) @config = IniFile.load(path)
end end
# Метод для получения порта сервера из конфигурации, если он задан, иначе возвращает значение по умолчанию (8080)
def get_port() def get_port()
unless @config["server"]["port"].nil? unless @config["server"]["port"].nil?
@config["server"]["port"].to_i @config["server"]["port"].to_i
@ -23,6 +27,7 @@ class IniConfig
end end
end end
# Метод для получения репозитория из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repo")
def get_repo() def get_repo()
unless @config["repo"]["repo"].nil? unless @config["repo"]["repo"].nil?
@config["repo"]["repo"].to_s @config["repo"]["repo"].to_s
@ -31,6 +36,7 @@ class IniConfig
end end
end end
# Метод для получения базы данных из конфигурации, если она задана, иначе возвращает значение по умолчанию ("db")
def get_db() def get_db()
unless @config["server"]["db"].nil? unless @config["server"]["db"].nil?
@config["server"]["db"].to_s @config["server"]["db"].to_s
@ -39,6 +45,7 @@ class IniConfig
end end
end end
# Метод для получения скрытых конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
def get_configs_hide() def get_configs_hide()
unless @config["configs"]["hide"].nil? unless @config["configs"]["hide"].nil?
@config["configs"]["hide"].split(",").map { |item| item.strip } @config["configs"]["hide"].split(",").map { |item| item.strip }
@ -47,6 +54,7 @@ class IniConfig
end end
end end
# Метод для получения выбранных конфигураций из конфигурации, если они заданы, иначе возвращает пустой массив
def get_configs_selected() def get_configs_selected()
unless @config["configs"]["selected"].nil? unless @config["configs"]["selected"].nil?
@config["configs"]["selected"].split(",").map { |item| item.strip } @config["configs"]["selected"].split(",").map { |item| item.strip }
@ -55,6 +63,7 @@ class IniConfig
end end
end end
# Метод для получения пути к проектам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("projects")
def get_projects_path() def get_projects_path()
unless @config["projects"]["path"].nil? unless @config["projects"]["path"].nil?
@config["projects"]["path"].to_s @config["projects"]["path"].to_s
@ -63,6 +72,7 @@ class IniConfig
end end
end end
# Метод для получения пути к счетчику из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/counter")
def get_counter_path() def get_counter_path()
unless @config["counter"]["path"].nil? unless @config["counter"]["path"].nil?
@config["counter"]["path"].to_s @config["counter"]["path"].to_s
@ -71,6 +81,7 @@ class IniConfig
end end
end end
# Метод для получения пути к блокировке сборки из конфигурации, если он задан, иначе возвращает значение по умолчанию ("locks/build")
def get_build_lock_path() def get_build_lock_path()
unless @config["build"]["path"].nil? unless @config["build"]["path"].nil?
@config["build"]["path"].to_s @config["build"]["path"].to_s
@ -79,6 +90,7 @@ class IniConfig
end end
end end
# Метод для получения количества элементов на странице из конфигурации, если оно задано и больше нуля, иначе возвращает значение по умолчанию (30)
def get_items_per_page() def get_items_per_page()
unless @config["pages"]["items_per_page"].nil? unless @config["pages"]["items_per_page"].nil?
res = @config["pages"]["items_per_page"].to_i res = @config["pages"]["items_per_page"].to_i
@ -91,6 +103,7 @@ class IniConfig
end end
end end
# Метод для получения пути к ключам из конфигурации, если он задан, иначе возвращает значение по умолчанию ("keys")
def get_keys_path() def get_keys_path()
unless @config["sign"]["path"].nil? unless @config["sign"]["path"].nil?
@config["sign"]["path"].to_s @config["sign"]["path"].to_s
@ -99,6 +112,7 @@ class IniConfig
end end
end end
# Метод для получения пути к реповьюверу из конфигурации, если он задан, иначе возвращает значение по умолчанию ("repoview")
def get_repoview_path() def get_repoview_path()
unless @config["repoview"]["path"].nil? unless @config["repoview"]["path"].nil?
@config["repoview"]["path"].to_s @config["repoview"]["path"].to_s

@ -1,27 +1,49 @@
# Подключаем файл utilities.rb для использования его методов
require_relative "utilities" require_relative "utilities"
# Класс ConfigsList для работы со списком конфигураций
class ConfigsList class ConfigsList
# Определение свойств класса
attr :error, :cfg attr :error, :cfg
# Конструктор класса с параметром cfg
def initialize(cfg) def initialize(cfg)
@cfg = cfg @cfg = cfg
end end
# Метод get_configs для получения списка конфигураций
def get_configs def get_configs
# Получаем список скрытых конфигураций из cfg
hide_list = @cfg.get_configs_hide hide_list = @cfg.get_configs_hide
# Получаем список выбранных конфигураций из cfg
select_list = @cfg.get_configs_selected select_list = @cfg.get_configs_selected
# Создаем список глобальных конфигураций в директории /etc/mock/*.cfg
list_global = Dir["/etc/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }.reject { |item| check_partname_in_array(item[1], hide_list) } list_global = Dir["/etc/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }.reject { |item| check_partname_in_array(item[1], hide_list) }
# Проверяем наличие глобальных конфигураций и создаем пустой список, если их нет
if list_global.nil? if list_global.nil?
list_global = [] list_global = []
end end
# Создаем список локальных конфигураций в директории ~/.config/mock/*.cfg
list_local = Dir["~/.config/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] } list_local = Dir["~/.config/mock/*.cfg"].map { |item| [File.dirname(item), File.basename(item, ".cfg"), item] }
# Проверяем наличие локальных конфигураций и создаем пустой список, если их нет
if list_local.nil? if list_local.nil?
list_local = [] list_local = []
end end
# Создаем список выбранных конфигураций из глобального и локального списка
list_selected = (list_global + list_local).select { |item| check_partname_in_array(item[1], select_list) } list_selected = (list_global + list_local).select { |item| check_partname_in_array(item[1], select_list) }
# Проверяем наличие выбранных конфигураций и создаем пустой список, если их нет
if list_selected.nil? if list_selected.nil?
list_selected = [] list_selected = []
end end
# Возвращаем хеш с глобальными, локальными и выбранными конфигурациями
{ :global => list_global, :local => list_local, :selected => list_selected } { :global => list_global, :local => list_local, :selected => list_selected }
end end
end end

Loading…
Cancel
Save