Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -811,5 +811,9 @@
Функция СтандартнаяФункцияОбработки_Сообщить() Экспорт
```

### Отладка методов

Для того, что бы работал отладчик и заходил в добавленные методы нужно: Либо установить любое значение переменной окружения с именем ```OSCRIPT_FLUENT_DEBUG```. Либо вызвать метод ```Отладка()```

---
Вдохновение черпалось из java8 stream-api.
1 change: 1 addition & 0 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
.ЗависитОт("logos")
.ЗависитОт("notify", "0.2.0")
.ЗависитОт("strings")
.ЗависитОт("tempfiles")
.ВключитьФайл("examples")
.ВключитьФайл("src")
.ВключитьФайл("tasks")
Expand Down
34 changes: 32 additions & 2 deletions src/Классы/ПроцессорКоллекций.os
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#Использовать notify
#Использовать logos
#Использовать strings
#Использовать tempfiles

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

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

// Флаг поддержки возможности отладки добавленных методов
Перем Отладка;

Процедура ПриСозданииОбъекта()
Отладка = ЗначениеЗаполнено(ПолучитьПеременнуюСреды("OSCRIPT_FLUENT_DEBUG"));
КонецПроцедуры

// Общее API

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

// Включает возможность отладки. Достигается сохранением текста модуля во временный файл.
//
// Возвращаемое значение:
// ПроцессорКоллекций - Ссылка на текущий инстанс ПроцессорКоллекций
//
Функция Отладка(Включена = Истина) Экспорт

Отладка = Включена;

Возврат ЭтотОбъект;

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

// Конвейерные методы

// Получить первые N элементов.
Expand Down Expand Up @@ -962,8 +983,17 @@
"А = 0;",
ПользовательскоеВыражение
);

ВременныйСценарий = ЗагрузитьСценарийИзСтроки(ТекстИзолированногоКласса);

Если Отладка = Истина Тогда
ИмяВременногоФайла = ВременныеФайлы.НовоеИмяФайла("os");
ЗаписьТекста = Новый ЗаписьТекста();
ЗаписьТекста.Открыть(ИмяВременногоФайла);
ЗаписьТекста.Записать(ТекстИзолированногоКласса);
ЗаписьТекста.Закрыть();
ВременныйСценарий = ЗагрузитьСценарий(ИмяВременногоФайла);
Иначе
ВременныйСценарий = ЗагрузитьСценарийИзСтроки(ТекстИзолированногоКласса);
КонецЕсли;

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