Skip to content

Commit 23c36ac

Browse files
authored
Merge pull request #21 from Nivanchenko/feature/debug
2 parents 554689b + 3ead98c commit 23c36ac

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -811,5 +811,9 @@
811811
Функция СтандартнаяФункцияОбработки_Сообщить() Экспорт
812812
```
813813

814+
### Отладка методов
815+
816+
Для того, что бы работал отладчик и заходил в добавленные методы нужно: Либо установить любое значение переменной окружения с именем ```OSCRIPT_FLUENT_DEBUG```. Либо вызвать метод ```Отладка()```
817+
814818
---
815819
Вдохновение черпалось из java8 stream-api.

packagedef

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
.ЗависитОт("logos")
99
.ЗависитОт("notify", "0.2.0")
1010
.ЗависитОт("strings")
11+
.ЗависитОт("tempfiles")
1112
.ВключитьФайл("examples")
1213
.ВключитьФайл("src")
1314
.ВключитьФайл("tasks")

src/Классы/ПроцессорКоллекций.os

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#Использовать notify
22
#Использовать logos
33
#Использовать strings
4+
#Использовать tempfiles
45

56
#Использовать "../internal"
67

@@ -11,6 +12,13 @@
1112
Перем ВременныеОписанияОповещений;
1213
Перем ТекстШаблонаИзолированногоКласса;
1314

15+
// Флаг поддержки возможности отладки добавленных методов
16+
Перем Отладка;
17+
18+
Процедура ПриСозданииОбъекта()
19+
Отладка = ЗначениеЗаполнено(ПолучитьПеременнуюСреды("OSCRIPT_FLUENT_DEBUG"));
20+
КонецПроцедуры
21+
1422
// Общее API
1523

1624
// Устанавливает коллекцию для обработки Процессора коллекций.
@@ -23,6 +31,19 @@
2331
Лог.Отладка("Установлена коллекция размером %1", ПроцессорКоллекцийСлужебный.ПолучитьКоллекцию().Количество());
2432
КонецПроцедуры
2533

34+
// Включает возможность отладки. Достигается сохранением текста модуля во временный файл.
35+
//
36+
// Возвращаемое значение:
37+
// ПроцессорКоллекций - Ссылка на текущий инстанс ПроцессорКоллекций
38+
//
39+
Функция Отладка(Включена = Истина) Экспорт
40+
41+
Отладка = Включена;
42+
43+
Возврат ЭтотОбъект;
44+
45+
КонецФункции
46+
2647
// Конвейерные методы
2748

2849
// Получить первые N элементов.
@@ -962,8 +983,17 @@
962983
"А = 0;",
963984
ПользовательскоеВыражение
964985
);
965-
966-
ВременныйСценарий = ЗагрузитьСценарийИзСтроки(ТекстИзолированногоКласса);
986+
987+
Если Отладка = Истина Тогда
988+
ИмяВременногоФайла = ВременныеФайлы.НовоеИмяФайла("os");
989+
ЗаписьТекста = Новый ЗаписьТекста();
990+
ЗаписьТекста.Открыть(ИмяВременногоФайла);
991+
ЗаписьТекста.Записать(ТекстИзолированногоКласса);
992+
ЗаписьТекста.Закрыть();
993+
ВременныйСценарий = ЗагрузитьСценарий(ИмяВременногоФайла);
994+
Иначе
995+
ВременныйСценарий = ЗагрузитьСценарийИзСтроки(ТекстИзолированногоКласса);
996+
КонецЕсли;
967997

968998
ОписаниеОповещения = Новый ОписаниеОповещения(
969999
"ОбработкаОповещения",

0 commit comments

Comments
 (0)