Библиотека для работы с конфигурационными файлами в формате json, yaml

configor

Stars Release Открытый чат проекта https://gitter.im/EvilBeaver/oscript-library

Build Status Coverage Status

Библиотека для работы с конфигурационными файлами в формате json, yaml

Данная библиотека позволяет работать с конфигурационными файлами с помощью предварительного описания требуемой конфигурации. А так же без описания. Получение параметров по ключам вида Настройки.Глобальные.НастройкиПрокси.Сервер. Обеспечивает подстановку значение друг в друга и чтение вложенных файлов настроек

Мотивация

Сравнительная таблица

Библиотека от @Stepa86 ReadParams

Библиотека от @artbear Params

Configor ReadParams Params
Чтение файлов в формате json
Чтение файлов в формате yaml/yml
Чтение файлов в произвольном формате (свой провайдер чтения)
Выполнение подстановок при чтении
Чтение переменных окружения (через произвольный провайдер)
Чтение параметров командной строки (через произвольный провайдер)
Запись параметров в прочитанный файл (в разработке)
Встроенный конструктор параметров
Выгрузка результата чтения в класс параметров
Поддержка деревовидных структур параметров Настройки.НастройкиПрокси.Пользователь и Настройки.НастройкиПрокси.Сервара.0.АдресСервера
Доступ к вложенным параметра (в том числе к элементам массива) в формате ДополнительныеХабы.0.Сервер, ДополнительныеХабы.1.Сервер
Авто приоритеты - настройки в коде, в файле, в окруж., ком.строке ✓ (на уровне приоритетов провайдеров)
Безопасный доступ к параметрам (возвращает значение по умолчанию или неопределенно)

Пример работы:

  • Чтение параметров из файла

    // Пример файла настроек
    //{
    //    'Настройки': {
    //        "Глобальные": {
    //            "НастройкиПрокси":{
    //                "Сервер": "localhost",
    //                "Порт": "8080"
    //            }
    //        }
    //
    //    }
    //}

    МенеджерПараметров = Новый МенеджерПараметров();
	МенеджерПараметров.УстановитьФайлПараметров("Путь/К/Файлу");
	МенеджерПараметров.Прочитать();

    ПроксиСервер = МенеджерПараметров.Параметр("Настройки.Глобальные.НастройкиПрокси.Сервер")

    Сообщить(ПроксиСервер);

  • Чтения параметров через конструктор параметров

Класс "ПараметрыПриложения"

Перем мПараметры;

Функция Параметры() Экспорт
	Возврат мПараметры;
КонецФункции

Процедура УстановитьПараметры(Знач ВходящиеПараметры) Экспорт
	мПараметры = ВходящиеПараметры;
КонецПроцедуры

Процедура ОписаниеПараметров(Знач Конструктор) Экспорт
	
	НастройкиПрокси = Конструктор.НовыеПараметры("ПараметрСоответствиеСтруктуры")
				.ПолеСтрока("Сервер")
				.ПолеСтрока("Порт")
				;
	
	
	Настройки = Конструктор.НовыеПараметры("Настройки")
						.ПолеОбъект("НастройкиПрокси", НастройкиПрокси)
						;
	
	Конструктор.ПолеСтрока("Версия version")
			    .ПолеОбъект("Настройки settings", Настройки)
				;

КонецПроцедуры

   
    МенеджерПараметров = Новы йМенеджерПараметров()
    МенеджерПараметров.КонструкторПараметров(ПараметрыПриложения);
    МенеджерПараметров.Прочитать();

    ПроксиСервер = МенеджерПараметров.Параметр("Настройки.НастройкиПрокси.Сервер")

    ПроксиСерверИзПараметровПриложения = ПараметрыПриложения.Параметры().Настройки.НастройкиПрокси.Сервер;

    Сообщить(ПроксиСерверИзПараметровПриложения);

Так же описание функциональности содержится в папке tests. В прилагающихся *.os можно подсмотреть больше примеров из тестов.

Установка

Для установки необходимо:

  • Скачать файл configor.ospx из раздела releases
  • Воспользоваться командой:
opm install -f <ПутьКФайлу>

или установить с хаба пакетов

opm install configor

Базовые принципы работы с классами библиотеки

Документация в разработке

Публичный интерфейс

Документация публичного интерфейса

Доработка

Доработка проводится по git-flow. Жду ваших PR.

Лицензия

Смотри файл LICENSE.

Доступные версии пакета

0.6.3
Изменен: 12.03.2019 12:18:42
0.6.2
Изменен: 13.02.2019 18:51:16
0.6.1
Изменен: 24.01.2019 9:12:50
0.6.0
Изменен: 24.01.2019 8:57:21
0.5.3
Изменен: 02.01.2019 19:48:30
0.5.2
Изменен: 02.01.2019 19:48:30
0.5.0
Изменен: 02.01.2019 19:48:30
0.2.1
Изменен: 02.01.2019 19:48:30
0.2.0
Изменен: 02.01.2019 19:48:30
В разработке

Репозиторий

https://github.com/oscript-library/configor

Актуальная версия

configor-0.6.3