Skip to content

Commit 9d7f4b3

Browse files
committed
Finish 0.5.2
2 parents 946de25 + bf9f684 commit 9d7f4b3

7 files changed

+117
-169
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.5.1")
7+
.Версия("0.5.2")
88
.Автор("Khorev Aleksey")
99
.АдресАвтора("[email protected]")
1010
.Описание("Библиотека для работы с конфигурационными файлами в формате json, yaml")
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#Использовать logos
2+
3+
Перем Лог;
4+
5+
Процедура ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров, Знач Родитель = "") Экспорт
6+
7+
Если Не Лог.Уровень() = УровниЛога.Отладка Тогда
8+
Возврат;
9+
КонецЕсли;
10+
11+
Если Родитель = "" Тогда
12+
Лог.Отладка(" Тип параметров %1", ТипЗнч(ЗначенияПараметров));
13+
КонецЕсли;
14+
15+
Если ТипЗнч(ЗначенияПараметров) = Тип("Массив") Тогда
16+
17+
Для ИИ = 0 По ЗначенияПараметров.ВГраница() Цикл
18+
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров[ИИ], СтрШаблон("%1.%2", Родитель, ИИ));
19+
КонецЦикла;
20+
21+
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("Структура")
22+
ИЛИ ТипЗнч(ЗначенияПараметров) = Тип("Соответствие") Тогда
23+
24+
Если ЗначенияПараметров.Количество() = 0 Тогда
25+
Лог.Отладка(" Коллекция параметров пуста!");
26+
КонецЕсли;
27+
28+
Для каждого Элемент Из ЗначенияПараметров Цикл
29+
30+
Если Не ПустаяСтрока(Родитель) Тогда
31+
ПредставлениеКлюча = СтрШаблон("%1.%2", Родитель, Элемент.Ключ);
32+
Иначе
33+
ПредставлениеКлюча = Элемент.Ключ;
34+
КонецЕсли;
35+
36+
Если ТипЗнч(Элемент.Значение) = Тип("КонструкторПараметров") Тогда
37+
38+
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение.ВСтруктуру(), ПредставлениеКлюча);
39+
40+
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Структура")
41+
ИЛИ ТипЗнч(Элемент.Значение) = Тип("Соответствие") Тогда
42+
43+
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
44+
45+
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Массив") Тогда
46+
47+
Лог.Отладка(" параметр <%1> = Массив.<%2>", ПредставлениеКлюча, Элемент.Значение.Количество());
48+
49+
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
50+
51+
Иначе
52+
Лог.Отладка(" параметр <%1> = <%2>", ПредставлениеКлюча, Элемент.Значение);
53+
54+
КонецЕсли;
55+
56+
КонецЦикла;
57+
58+
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("КонструкторПараметров") Тогда
59+
60+
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров.ВСтруктуру(), Родитель);
61+
62+
63+
Иначе
64+
65+
Лог.Отладка(" параметр <%1> = <%2>", Родитель, ЗначенияПараметров);
66+
67+
КонецЕсли;
68+
69+
КонецПроцедуры
70+
71+
Процедура ПриСозданииОбъекта(ВходящийЛог)
72+
73+
Лог = ВходящийЛог;
74+
75+
КонецПроцедуры

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

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -156,31 +156,10 @@
156156
Возврат Рез;
157157
КонецФункции // ВырезатьКомментарииИзТекстаJSON()
158158

159-
Процедура ПоказатьПараметрыВРежимеОтладки(ЗначенияПараметров, Знач Родитель = "")
159+
Процедура ПоказатьПараметрыВРежимеОтладки(ЗначенияПараметров)
160160

161-
Если Родитель = "" Тогда
162-
Лог.Отладка(" Тип параметров %1", ТипЗнч(ЗначенияПараметров));
163-
КонецЕсли;
164-
165-
Если ЗначенияПараметров.Количество() = 0 Тогда
166-
Лог.Отладка(" Коллекция параметров пуста!");
167-
КонецЕсли;
168-
169-
Для каждого Элемент Из ЗначенияПараметров Цикл
170-
171-
ПредставлениеКлюча = Элемент.Ключ;
172-
173-
Если Не ПустаяСтрока(Родитель) Тогда
174-
ПредставлениеКлюча = СтрШаблон("%1.%2", Родитель, ПредставлениеКлюча);
175-
КонецЕсли;
176-
177-
Лог.Отладка(" Получен параметр <%1> = <%2>", ПредставлениеКлюча, Элемент.Значение);
178-
179-
Если ТипЗнч(Элемент.Значение) = Тип("Соответствие") Тогда
180-
ПоказатьПараметрыВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
181-
КонецЕсли;
182-
183-
КонецЦикла;
161+
ПроцессорВывода = Новый ВыводВРежимеОтладки(Лог);
162+
ПроцессорВывода.ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров);
184163

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

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

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -127,31 +127,10 @@
127127
Возврат Рез;
128128
КонецФункции // ПрочитатьФайл()
129129

130-
Процедура ПоказатьПараметрыВРежимеОтладки(ЗначенияПараметров, Знач Родитель = "")
131-
132-
Если Родитель = "" Тогда
133-
Лог.Отладка(" Тип параметров %1", ТипЗнч(ЗначенияПараметров));
134-
КонецЕсли;
135-
136-
Если ЗначенияПараметров.Количество() = 0 Тогда
137-
Лог.Отладка(" Коллекция параметров пуста!");
138-
КонецЕсли;
130+
Процедура ПоказатьПараметрыВРежимеОтладки(ЗначенияПараметров)
139131

140-
Для каждого Элемент Из ЗначенияПараметров Цикл
141-
142-
ПредставлениеКлюча = Элемент.Ключ;
143-
144-
Если Не ПустаяСтрока(Родитель) Тогда
145-
ПредставлениеКлюча = СтрШаблон("%1.%2", Родитель, ПредставлениеКлюча);
146-
КонецЕсли;
147-
148-
Лог.Отладка(" Получен параметр <%1> = <%2>", ПредставлениеКлюча, Элемент.Значение);
149-
150-
Если ТипЗнч(Элемент.Значение) = Тип("Соответствие") Тогда
151-
ПоказатьПараметрыВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
152-
КонецЕсли;
153-
154-
КонецЦикла;
132+
ПроцессорВывода = Новый ВыводВРежимеОтладки(Лог);
133+
ПроцессорВывода.ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров);
155134

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

src/Классы/КонструкторПараметров.os

Lines changed: 4 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@
257257

258258
Лог.Отладка("Добавляю поле объект <%1>, <%2>, <%3>", ИмяПоля, ТипПоля, ОбъектПоля.ПолучитьНаименованиеПараметров());
259259

260-
Возврат Поле(ИмяПоля, ТипПоля, , , ОбъектПоля);
260+
Возврат Поле(ИмяПоля, ТипПоля, ОбъектПоля, , ОбъектПоля);
261261

262262
КонецФункции
263263

@@ -575,7 +575,6 @@
575575

576576
ИначеЕсли ТипЗначения = Тип("КонструкторПараметров") Тогда
577577

578-
// Лог.Отладка("")
579578
Возврат Значение.ВСтруктуру();
580579

581580
Иначе
@@ -698,65 +697,10 @@
698697

699698
КонецФункции
700699

701-
Процедура ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров, Знач Родитель = "")
700+
Процедура ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров)
702701

703-
Если Родитель = "" Тогда
704-
Лог.Отладка(" Тип параметров %1", ТипЗнч(ЗначенияПараметров));
705-
КонецЕсли;
706-
707-
Если ТипЗнч(ЗначенияПараметров) = Тип("Массив") Тогда
708-
709-
Для ИИ = 0 По ЗначенияПараметров.ВГраница() Цикл
710-
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров[ИИ], СтрШаблон("%1.%2", Родитель, ИИ));
711-
КонецЦикла;
712-
713-
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("Структура")
714-
ИЛИ ТипЗнч(ЗначенияПараметров) = Тип("Соответствие") Тогда
715-
716-
Если ЗначенияПараметров.Количество() = 0 Тогда
717-
Лог.Отладка(" Коллекция параметров пуста!");
718-
КонецЕсли;
719-
720-
Для каждого Элемент Из ЗначенияПараметров Цикл
721-
722-
Если Не ПустаяСтрока(Родитель) Тогда
723-
ПредставлениеКлюча = СтрШаблон("%1.%2", Родитель, Элемент.Ключ);
724-
Иначе
725-
ПредставлениеКлюча = Элемент.Ключ;
726-
КонецЕсли;
727-
728-
Если ТипЗнч(Элемент.Значение) = Тип("КонструкторПараметров") Тогда
729-
730-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение.ВСтруктуру(), ПредставлениеКлюча);
731-
732-
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Структура")
733-
ИЛИ ТипЗнч(Элемент.Значение) = Тип("Соответствие") Тогда
734-
735-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
736-
737-
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Массив") Тогда
738-
739-
Лог.Отладка(" параметр <%1> = Массив.<%2>", ПредставлениеКлюча, Элемент.Значение.Количество());
740-
741-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
742-
743-
Иначе
744-
Лог.Отладка(" параметр <%1> = <%2>", ПредставлениеКлюча, Элемент.Значение);
745-
746-
КонецЕсли;
747-
748-
КонецЦикла;
749-
750-
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("КонструкторПараметров") Тогда
751-
752-
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров.ВСтруктуру(), Родитель);
753-
754-
755-
Иначе
756-
757-
Лог.Отладка(" параметр <%1> = <%2>", Родитель, ЗначенияПараметров);
758-
759-
КонецЕсли;
702+
ПроцессорВывода = Новый ВыводВРежимеОтладки(Лог);
703+
ПроцессорВывода.ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров);
760704

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

src/Классы/МенеджерПараметров.os

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
#Использовать notify
12
#Использовать asserts
23
#Использовать logos
34
#Использовать tempfiles
45
#Использовать reflector
56
#Использовать fluent
6-
#Использовать notify
77

88
Перем ЧтениеПараметровВыполнено; // булево - флаг, что чтение выполнено
99

@@ -401,68 +401,13 @@
401401

402402
Лог.Отладка("Вызываю <УстановитьПараметры> для объекта <%1>", КлассПараметров);
403403
КлассПараметров.УстановитьПараметры(СтруктураПараметров);
404-
// ПоказатьНастройкиВРежимеОтладки(СтруктураПараметров);
405404

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

408-
Процедура ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров, Знач Родитель = "")
409-
410-
Если Родитель = "" Тогда
411-
Лог.Отладка(" Тип параметров %1", ТипЗнч(ЗначенияПараметров));
412-
КонецЕсли;
413-
414-
Если ТипЗнч(ЗначенияПараметров) = Тип("Массив") Тогда
415-
416-
Для ИИ = 0 По ЗначенияПараметров.ВГраница() Цикл
417-
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров[ИИ], СтрШаблон("%1.%2", Родитель, ИИ));
418-
КонецЦикла;
419-
420-
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("Структура")
421-
ИЛИ ТипЗнч(ЗначенияПараметров) = Тип("Соответствие") Тогда
407+
Процедура ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров)
422408

423-
Если ЗначенияПараметров.Количество() = 0 Тогда
424-
Лог.Отладка(" Коллекция параметров пуста!");
425-
КонецЕсли;
426-
427-
Для каждого Элемент Из ЗначенияПараметров Цикл
428-
429-
Если Не ПустаяСтрока(Родитель) Тогда
430-
ПредставлениеКлюча = СтрШаблон("%1.%2", Родитель, Элемент.Ключ);
431-
Иначе
432-
ПредставлениеКлюча = Элемент.Ключ;
433-
КонецЕсли;
434-
435-
Если ТипЗнч(Элемент.Значение) = Тип("КонструкторПараметров") Тогда
436-
437-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение.ВСтруктуру(), ПредставлениеКлюча);
438-
439-
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Структура")
440-
ИЛИ ТипЗнч(Элемент.Значение) = Тип("Соответствие") Тогда
441-
442-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
443-
444-
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Массив") Тогда
445-
446-
Лог.Отладка(" параметр <%1> = Массив.<%2>", ПредставлениеКлюча, Элемент.Значение.Количество());
447-
448-
ПоказатьНастройкиВРежимеОтладки(Элемент.Значение, ПредставлениеКлюча);
449-
450-
Иначе
451-
Лог.Отладка(" параметр <%1> = <%2>", ПредставлениеКлюча, Элемент.Значение);
452-
453-
КонецЕсли;
454-
455-
КонецЦикла;
456-
457-
ИначеЕсли ТипЗнч(ЗначенияПараметров) = Тип("КонструкторПараметров") Тогда
458-
459-
ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров.ВСтруктуру(), Родитель);
460-
461-
Иначе
462-
463-
Лог.Отладка(" параметр <%1> = <%2>", Родитель, ЗначенияПараметров);
464-
465-
КонецЕсли;
409+
ПроцессорВывода = Новый ВыводВРежимеОтладки(Лог);
410+
ПроцессорВывода.ПоказатьНастройкиВРежимеОтладки(ЗначенияПараметров);
466411

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

tests/КонструкторНастройки_test.os

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеПараметровИзКонструктора");
1717
ИменаТестов.Добавить("ТестДолжен_ПроверитьУдалениеПоляИзКонструктора");
1818
ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеПроизвольныхПолейКонструтора");
19-
// ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингОпций");
19+
ИменаТестов.Добавить("ТестДолжен_ПроверитьЗаполнениеОтсутствующихПараметров");
2020
// ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингМассивовОпций");
2121

2222
Возврат ИменаТестов;
@@ -121,6 +121,32 @@
121121

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

124+
Процедура ТестДолжен_ПроверитьЗаполнениеОтсутствующихПараметров() Экспорт
125+
126+
127+
СтруктураПараметров = Новый Соответствие();
128+
СтруктураПараметров.Вставить("--custom-feild", "ПроизвольноеПоле");
129+
СтруктураПараметров.Вставить("Поле", "ЗаданноеПоле");
130+
131+
МенеджерПараметров = Новый МенеджерПараметров();
132+
Конструктор = МенеджерПараметров.КонструкторПараметров();
133+
Конструктор.ПолеСтрока("Поле");
134+
135+
ПараметрСоответствие = Конструктор.НовыеПараметры("ПараметрСоответствие");
136+
ПараметрСоответствие.ПолеСтрока("Ключ1")
137+
.ПолеСтрока("Ключ2")
138+
;
139+
140+
Конструктор.ПолеОбъект("ОтсутствующееПоле", ПараметрСоответствие);
141+
142+
Конструктор.ИзСоответствия(СтруктураПараметров);
143+
СтруктураПроверки = Конструктор.ВСтруктуру();
144+
Ожидаем.Что(СтруктураПроверки.Свойство("ОтсутствующееПоле"), "Поле должно присутствовать").Равно(Истина);
145+
ПроверитьРезультат(СтруктураПараметров["Поле"], СтруктураПроверки["Поле"]);
146+
147+
КонецПроцедуры
148+
149+
124150
Процедура ТестДолжен_ПроверитьЧтениеПроизвольныхПолейКонструтора() Экспорт
125151

126152
СтруктураПараметров = Новый Соответствие();

0 commit comments

Comments
 (0)