Skip to content

Commit

Permalink
Новые провайдеры для конфигора
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Sep 30, 2023
1 parent de55e35 commit c5f2aed
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 6 deletions.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
.ВключитьФайл("LICENSE.md")
.ВключитьФайл("README.md")
.ЗависитОт("asserts", "1.4.0")
.ЗависитОт("configor", "0.7.1")
.ЗависитОт("configor", "0.8.1")
.ЗависитОт("logos", "1.4.0")
.ЗависитОт("fluent", "0.5.0")
.ЗависитОт("reflector", "0.7.1")
Expand Down
17 changes: 13 additions & 4 deletions src/Классы/Поделка.os
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@

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

Процедура ПриСозданииОбъекта()
Процедура ПриСозданииОбъекта(ЗначенияДеталек = Неопределено)
РазворачивательАннотаций = Новый РазворачивательАннотаций(ЭтотОбъект);
ФабрикаЖелудей = Новый ФабрикаЖелудей(ЭтотОбъект, РазворачивательАннотаций);

Expand Down Expand Up @@ -363,9 +363,18 @@
Лог = Логирование.ПолучитьЛог("oscript.lib.autumn.application.context");

МенеджерПараметров = Новый МенеджерПараметров();
// TODO: Добавить провайдеры для переменных среды и аргументов командной строки
МенеджерПараметров.ИспользоватьПровайдерJSON();
МенеджерПараметров.ИспользоватьПровайдерYAML();

// TODO: Добавить провайдер аргументов командной строки
ПровайдерПараметровINI = Новый ПровайдерПараметровINI();
// TODO: Получить префикс переменных среды в конструктор.
ПровайдерПараметровENV = Новый ПровайдерПараметровENV();
ПровайдерПараметровСоответствие = Новый ПровайдерПараметровСоответствие(ЗначенияДеталек);

МенеджерПараметров.ИспользоватьПровайдерJSON(1);
МенеджерПараметров.ИспользоватьПровайдерYAML(1);
МенеджерПараметров.ДобавитьПровайдерПараметров(ПровайдерПараметровINI, 1);
МенеджерПараметров.ДобавитьПровайдерПараметров(ПровайдерПараметровENV, 2);
МенеджерПараметров.ДобавитьПровайдерПараметров(ПровайдерПараметровСоответствие, 3);

НастройкаФайловогоПровайдера = МенеджерПараметров.НастройкаПоискаФайла();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
&Деталька("Моя.Настройка")
Перем Деталька Экспорт;

&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
27 changes: 26 additions & 1 deletion tests/Поделка.os
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,29 @@

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

&Тест
Процедура ЗначениеДеталькиМожноПереопределить() Экспорт

// Дано
ЗначенияДеталек = Новый Соответствие();
Настройки = Новый Соответствие();

ЗначенияДеталек.Вставить("Моя", Настройки);
Настройки.Вставить("Настройка", "Переопределенное значение");

Поделка = Новый Поделка(ЗначенияДеталек);
Поделка
.ДобавитьЖелудь(Тип("ЖелудьСДеталькойИзСоответствия"))
.ЗапуститьПриложение();

// Когда
Желудь = Поделка.НайтиЖелудь("ЖелудьСДеталькойИзСоответствия");

// Тогда
Ожидаем.Что(Желудь.Деталька, "Хитрая настройка не прочиталась").Равно("Переопределенное значение");

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

&Тест
Процедура НапильникПолучаетЖелудьЧерезКонструктор() Экспорт

Expand Down Expand Up @@ -1061,4 +1084,6 @@
Ожидаем.Что(Желудь.Массив[0]).Равно(1);
Ожидаем.Что(Желудь.Массив[1]).Равно("2");

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

ЗначениеДеталькиМожноПереопределить();

0 comments on commit c5f2aed

Please sign in to comment.