Skip to content

Commit

Permalink
Merge branch 'release/v1.9.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Feb 20, 2019
2 parents 1473dc4 + 64a169b commit ea03feb
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -522,13 +522,21 @@

Рез = СтрЗаменить(Рез, "<КаталогПроектаДвойныеСлеши>", ЗаменитьСлешиНаДвойныеСлеши(КаталогПроекта));
Рез = СтрЗаменить(Рез, "<РабочийКаталогДвойныеСлеши>", ЗаменитьСлешиНаДвойныеСлеши(РабочийКаталог));

Рез = СтрЗаменить(Рез, "<КаталогПроектаПрямыеСлеши>", ЗаменитьСлешиНаПрямыеСлеши(КаталогПроекта));
Рез = СтрЗаменить(Рез, "<РабочийКаталогПрямыеСлеши>", ЗаменитьСлешиНаПрямыеСлеши(РабочийКаталог));
Возврат Рез;
КонецФункции

Функция ЗаменитьСлешиНаДвойныеСлеши(Знач Строка)
Рез = СтрЗаменить(Строка, "\", "\\");
Возврат Рез;
КонецФункции

Функция ЗаменитьСлешиНаПрямыеСлеши(Знач Строка)
Рез = СтрЗаменить(Строка, "\", "/");
Возврат Рез;
КонецФункции
//}

Лог = Логирование.ПолучитьЛог("bdd.tests");
Expand Down
45 changes: 23 additions & 22 deletions src/bdd-generate.os
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
// возвращает массив созданных файлов шагов
Функция СгенерироватьФайлыШагов(Знач ФайлФичи, Знач ФайлБиблиотек = Неопределено, Знач ИскатьВПодкаталогах = Истина) Экспорт
НаборБиблиотечныхШагов = ПолучитьНаборБиблиотечныхШагов(ФайлБиблиотек);
Лог.Отладка("Найдено библиотечных шагов: %1 шт.",
Лог.Отладка("Найдено библиотечных шагов: %1 шт.",
?(ЗначениеЗаполнено(НаборБиблиотечныхШагов), НаборБиблиотечныхШагов.Количество(), "0"));

РезМассивФайлов = Новый Массив;
Expand All @@ -48,7 +48,7 @@
ФайлРеализации = СоздатьФайлРеализацииШагов(ФайлФичи, НаборБиблиотечныхШагов);
РезМассивФайлов.Добавить(ФайлРеализации);
КонецЕсли;

Возврат РезМассивФайлов;
КонецФункции

Expand All @@ -75,10 +75,10 @@
.ИмеетТип("ДеревоЗначений");

ФайлШагов = ПолучитьФайлШагов(ФайлФичи);

НаборШаговФичи = Новый Структура;
ПолучитьНаборШаговФичи(ДеревоФич.Строки[0], НаборБиблиотечныхШагов, НаборШаговФичи, ФайлШагов);

Если ЗначениеЗаполнено(НаборШаговФичи) Тогда

Если Не ФайлШагов.Существует() Тогда
Expand Down Expand Up @@ -145,10 +145,10 @@
КонецЕсли;

ЗаписатьОписанияШаговВФайлШагов(ОписаниеЗаписываемогоФайла, НаборШаговФичи);
ЗаписатьОписанияХуковВФайлШагов(ЧитательГеркин.ВозможныеХуки().ПередЗапускомСценария,
ЗаписатьОписанияХуковВФайлШагов(ЧитательГеркин.ВозможныеХуки().ПередЗапускомСценария,
"Процедура выполняется перед запуском каждого сценария", ОписаниеЗаписываемогоФайла);
ЗаписатьОписанияХуковВФайлШагов(ЧитательГеркин.ВозможныеХуки().ПослеЗапускаСценария,

ЗаписатьОписанияХуковВФайлШагов(ЧитательГеркин.ВозможныеХуки().ПослеЗапускаСценария,
"Процедура выполняется после завершения каждого сценария", ОписаниеЗаписываемогоФайла);

Если Не ЭтоПервичнаяГенерация Тогда
Expand All @@ -172,7 +172,7 @@
ЗаписатьБуферВФайл(Буфер, НовыйФайл);

КопироватьФайл(НовыйФайл.ПолноеИмя, ФайлШагов.ПолноеИмя);

МоиВременныеФайлы.УдалитьФайл(НовыйФайл.ПолноеИмя);

Лог.Информация("Генерация завершена.");
Expand Down Expand Up @@ -247,7 +247,7 @@

КонецЦикла;
ТаблицаМетодов.Индексы.Добавить("НормализованноеИмяМетода");

Для каждого Строка Из ТаблицаМетодов Цикл
Лог.Отладка("Получили имя экспортного метода в файле шагов <%1>", Строка.ИмяМетода);
КонецЦикла;
Expand Down Expand Up @@ -275,7 +275,7 @@
Если ОписаниеМетода = Неопределено Тогда
ВызватьИсключение СтрШаблон("Не найден метод %2 для файла шагов <%1>", ФайлШагов.ПолноеИмя, ИмяСпецМетода);
КонецЕсли;
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ОписаниеМетода.НомерСтрокиНачала - 1);
Иначе
Буфер.Добавить("// Метод выдает список шагов, реализованных в данном файле-шагов");
Expand Down Expand Up @@ -313,7 +313,7 @@
Если Не ЭтоПервичнаяГенерация Тогда
ОписаниеМетода = НаборМетодовМодуляШагов.Найти(АдресХука, "НормализованноеИмяМетода");
Если ОписаниеМетода <> Неопределено Тогда
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ОписаниеМетода.НомерСтрокиНачала - 1);
Иначе
Возврат;
Expand Down Expand Up @@ -344,24 +344,25 @@
Продолжить;
КонецЕсли;

ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ОписаниеМетода.НомерСтрокиБлокаДоМетода,
ОписаниеМетода.НомерСтрокиКонец);
КонецЦикла;
КонецПроцедуры

Процедура ЗаписатьОставшеесяТелоВФайл(ТаблицаМодуляШагов, НаборМетодовМодуляШагов, Буфер)
Ожидаем.Что(НаборМетодовМодуляШагов.Количество(),
Ожидаем.Что(НаборМетодовМодуляШагов.Количество(),
"Ожидали, что НаборМетодовМодуляШагов имеет количество > 0, а это не так")
.Больше(0);

ПоследняяСтрока = НаборМетодовМодуляШагов[НаборМетодовМодуляШагов.Количество() - 1];
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ПоследняяСтрока.НомерСтрокиКонец + 1,
ВывестиВБуферСтрокиТаблицы(Буфер, ТаблицаМодуляШагов, ПоследняяСтрока.НомерСтрокиКонец + 1,
ТаблицаМодуляШагов.Количество() - 1);
КонецПроцедуры

Процедура ЗаписатьБуферВФайл(Буфер, ФайлДляЗаписи)
ЗаписьФайла = Новый ЗаписьТекста(ФайлДляЗаписи.ПолноеИмя, "utf-8");

Попытка
ЗаписьФайла = Новый ЗаписьТекста(ФайлДляЗаписи.ПолноеИмя, "utf-8");

Для каждого Строка Из Буфер Цикл
ЗаписьФайла.ЗаписатьСтроку(Строка);
Expand All @@ -382,15 +383,15 @@
Если Узел.ТипШага = ВозможныеТипыШагов.Шаг Тогда
АдресШага = Узел.АдресШага;
НормализованныйАдресШага = ЧитательГеркин.НормализоватьАдресШага(АдресШага);

ОписаниеИсполнителяШагов = Неопределено;
ШагИзБиблиотеки = ЗначениеЗаполнено(НаборБиблиотечныхШагов)
ШагИзБиблиотеки = ЗначениеЗаполнено(НаборБиблиотечныхШагов)
И НаборБиблиотечныхШагов.Свойство(НормализованныйАдресШага, ОписаниеИсполнителяШагов);

Если ШагИзБиблиотеки Тогда
ШагИзБиблиотеки = ОписаниеИсполнителяШагов.Файл.ПолноеИмя <> ФайлШагов.ПолноеИмя;
КонецЕсли;

Если Не ШагИзБиблиотеки И Не НаборШаговФичи.Свойство(НормализованныйАдресШага) Тогда
НаборШаговФичи.Вставить(НормализованныйАдресШага, Узел);
Лог.Отладка("Нашел адрес шага для вставки в файл шагов: %1, %2, <%3>",
Expand All @@ -411,7 +412,7 @@
УзелШага = ОписаниеШага.Значение;
АдресШага = УзелШага.АдресШага;
Буфер.Добавить(Символы.Таб + "ВсеШаги.Добавить(""" + АдресШага + """);");
Лог.Отладка("ЗаписатьКодОписанияШаговВБуфер - В НаборШаговФичи добавляю шаг с адресом %1, тело %2",
Лог.Отладка("ЗаписатьКодОписанияШаговВБуфер - В НаборШаговФичи добавляю шаг с адресом %1, тело %2",
АдресШага, УзелШага.Тело);
КонецЦикла;

Expand Down Expand Up @@ -452,7 +453,7 @@
Буфер.Добавить(СтрокаДляЗаписи);

ШаблонЗаписи = "%1ВызватьИсключение Новый ИнформацияОбОшибке(""Шаг <%3> не реализован"", ""%2"");";
СтрокаДляЗаписи = СтрШаблон(ШаблонЗаписи, Символы.Таб,
СтрокаДляЗаписи = СтрШаблон(ШаблонЗаписи, Символы.Таб,
ЧитательГеркин.ПараметрИсключенияДляЕщеНеРеализованногоШага(), ИмяМетода);

Лог.Отладка("СтрокаДляЗаписи <%1>", СтрокаДляЗаписи);
Expand Down Expand Up @@ -516,13 +517,13 @@

Функция СоздатьРегулярныеВыражения()
Рез = Новый Структура;
Рез.Вставить("НачалоЭкспортногоМетода",
Рез.Вставить("НачалоЭкспортногоМетода",
Новый РегулярноеВыражение("^\s*(Функция|Процедура)\s+([_\w\dа-яё]+)\s*\(.+(Экспорт)+"));

Рез.Вставить("КонецМетода", Новый РегулярноеВыражение("^\s*(КонецФункции|КонецПроцедуры)"));

ИмяСпецМетода = ЧитательГеркин.НаименованиеФункцииПолученияСпискаШагов();
Рез.Вставить("ФункцияПолучитьСписокШагов",
Рез.Вставить("ФункцияПолучитьСписокШагов",
Новый РегулярноеВыражение(СтрШаблон("^\s*Функция\s+%1\s*\(.+Экспорт", ИмяСпецМетода)));

Возврат Новый ФиксированнаяСтруктура(Рез);
Expand Down
Loading

0 comments on commit ea03feb

Please sign in to comment.