Skip to content

Commit b989c03

Browse files
authored
Merge pull request #32 from sfaqer/feature/ENVdots
Добавлена обработка точек в работе провайдера переменных среды.
2 parents fce874b + 4457b37 commit b989c03

File tree

3 files changed

+31
-19
lines changed

3 files changed

+31
-19
lines changed

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55

66
Описание.Имя("configor")
7-
.Версия("0.8.0")
7+
.Версия("0.8.1")
88
.Автор("Khorev Aleksey")
99
.АдресАвтора("[email protected]")
1010
.Описание("Библиотека для работы с конфигурационными файлами в формате json, yaml")

src/Классы/internal/Классы/ПровайдерПараметровENV.os

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,27 +50,39 @@
5050
Лог.Отладка("Выполняю чтение параметров переменных среды для префикса <%1>", Префикс);
5151

5252
ПеременныеСреды = ПеременныеСреды();
53-
54-
Если ПустаяСтрока(Префикс) Тогда
55-
Возврат ПеременныеСреды;
56-
КонецЕсли;
57-
5853
ПрочитанныеПараметры = Новый Соответствие;
5954

6055
Для каждого ПеременнаяСреды Из ПеременныеСреды Цикл
6156

62-
Если СтрНачинаетсяС(ПеременнаяСреды.Ключ, Префикс) Тогда
57+
ПрочитанныеПараметры.Вставить(
58+
СтрЗаменить(СтрЗаменить(ПеременнаяСреды.Ключ, "_", "."), "..", "_"),
59+
ПеременнаяСреды.Значение
60+
);
6361

64-
ПрочитанныеПараметры.Вставить(
65-
Прав(ПеременнаяСреды.Ключ, СтрДлина(ПеременнаяСреды.Ключ) - СтрДлина(Префикс)),
66-
ПеременнаяСреды.Значение
67-
);
62+
КонецЦикла;
6863

69-
КонецЕсли;
64+
Результат = Новый Соответствие;
7065

71-
КонецЦикла;
66+
Если ПустаяСтрока(Префикс) Тогда
67+
Результат = ПрочитанныеПараметры;
68+
Иначе
69+
70+
Для каждого ПеременнаяСреды Из ПрочитанныеПараметры Цикл
71+
72+
Если СтрНачинаетсяС(ПеременнаяСреды.Ключ, Префикс) Тогда
73+
Сообщить(Прав(ПеременнаяСреды.Ключ, СтрДлина(ПеременнаяСреды.Ключ) - СтрДлина(Префикс)));
74+
Результат.Вставить(
75+
Прав(ПеременнаяСреды.Ключ, СтрДлина(ПеременнаяСреды.Ключ) - СтрДлина(Префикс)),
76+
ПеременнаяСреды.Значение
77+
);
78+
79+
КонецЕсли;
80+
81+
КонецЦикла;
82+
83+
КонецЕсли;
7284

73-
Возврат ПрочитанныеПараметры;
85+
Возврат Результат;
7486

7587
КонецФункции
7688

tests/ПровайдерПараметровENV.os

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
// Дано
88

9-
УстановитьПеременнуюСреды("TestConfigorEnv", "ТестЗначение", РасположениеПеременнойСреды.Процесс);
9+
УстановитьПеременнуюСреды("Test__Configor_Env", "ТестЗначение", РасположениеПеременнойСреды.Процесс);
1010

1111
// Когда
1212

@@ -18,7 +18,7 @@
1818

1919
// Тогда
2020

21-
Ожидаем.Что(МенеджерПараметров.Параметр("TestConfigorEnv")).Равно("ТестЗначение");
21+
Ожидаем.Что(МенеджерПараметров.Параметр("Test_Configor.Env")).Равно("ТестЗначение");
2222

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

@@ -27,18 +27,18 @@
2727

2828
// Дано
2929

30-
УстановитьПеременнуюСреды("Test_ConfigorEnv", "ТестЗначение", РасположениеПеременнойСреды.Процесс);
30+
УстановитьПеременнуюСреды("Test_Configor__Env", "ТестЗначение", РасположениеПеременнойСреды.Процесс);
3131

3232
// Когда
3333

3434
МенеджерПараметров = Новый МенеджерПараметров();
3535

36-
МенеджерПараметров.ДобавитьПровайдерПараметров(Новый ПровайдерПараметровENV("Test_"));
36+
МенеджерПараметров.ДобавитьПровайдерПараметров(Новый ПровайдерПараметровENV("Test."));
3737

3838
МенеджерПараметров.Прочитать();
3939

4040
// Тогда
4141

42-
Ожидаем.Что(МенеджерПараметров.Параметр("ConfigorEnv")).Равно("ТестЗначение");
42+
Ожидаем.Что(МенеджерПараметров.Параметр("Configor_Env")).Равно("ТестЗначение");
4343

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

0 commit comments

Comments
 (0)