diff --git a/packagedef b/packagedef index 69cad0c..ad32fd5 100644 --- a/packagedef +++ b/packagedef @@ -3,7 +3,7 @@ // Полную документацию см. на hub.oscript.io/packaging Описание.Имя("v8storage") - .Версия("0.9.1") + .Версия("0.9.2") .ВерсияСреды("1.0.21") .ЗависитОт("asserts") .ЗависитОт("fluent", "0.3.1") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" index d195533..cbd50e0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" @@ -23,7 +23,8 @@ Функция ПрочитатьТекстСкобкоФайлаРегулярками(Знач Текст) - Текст = СтрЗаменить(Текст, """""", "'"); + СпецСимвол = Символ(0); + Текст = СтрЗаменить(Текст, """""", СпецСимвол); РегВыражение = Новый РегулярноеВыражение("[\{]""#"",""([^""]+)[""][\}]"); МассивСовпадений = РегВыражение.НайтиСовпадения(Текст); @@ -31,7 +32,8 @@ Массив = Новый Массив(); Для каждого Совпадение Из МассивСовпадений Цикл - Массив.Добавить(Совпадение.Группы[1].Значение); + Значение = СтрЗаменить(Совпадение.Группы[1].Значение, СпецСимвол, """"""); + Массив.Добавить(Значение); КонецЦикла; ТаблицаВерсий = СформироватьТаблицуВерсий(Массив); @@ -126,6 +128,7 @@ ТаблицаВерсий.Колонки.Добавить("Номер"); ТаблицаВерсий.Колонки.Добавить("Дата"); ТаблицаВерсий.Колонки.Добавить("Время"); + ТаблицаВерсий.Колонки.Добавить("Версия"); ТаблицаВерсий.Колонки.Добавить("Автор"); ТаблицаВерсий.Колонки.Добавить("Комментарий"); ТаблицаВерсий.Колонки.Добавить("Изменены"); @@ -159,6 +162,8 @@ ИмяПоля = "Дата"; ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "Время создания:") Тогда ИмяПоля = "Время"; + ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "Версия конфигурации:") Тогда + ИмяПоля = "Версия"; ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "Комментарий:") Тогда ИмяПоля = "Комментарий"; ИначеЕсли СтрНачинаетсяС(ТекущаяСтрока, "Изменены:") Тогда diff --git a/tests/fixtures/report.quoted.mxl.txt b/tests/fixtures/report.quoted.mxl.txt new file mode 100644 index 0000000..c612b9a Binary files /dev/null and b/tests/fixtures/report.quoted.mxl.txt differ diff --git "a/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" "b/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" index d648d2c..d5dc092 100644 --- "a/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" +++ "b/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" @@ -12,11 +12,27 @@ ИменаТестов = Новый Массив; ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеОтчетаХранилища"); + ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии"); Возврат ИменаТестов; КонецФункции +Процедура ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии() Экспорт + + ПутьКФайлуОтчета = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "report.quoted.mxl.txt"); + ПарсерОтчетаХранилища = Новый ПарсерОтчетаХранилища; + ТаблицаВерсийХранилища = ПарсерОтчетаХранилища.ПрочитатьФайлОтчетаХранилища(ПутьКФайлуОтчета); + Ожидаем.Что(ТаблицаВерсийХранилища.Количество(), "Количество версий должно быть равны").Равно(2); + Ожидаем.Что(ТаблицаВерсийХранилища[1].Комментарий).Равно( + "Многострочный комментарий к версии хранилища, содержащий: + |* ""двойные кавычки"" + |* 'одинарные кавычки' + |* несколько кавычек подряд: """""" и '''"); + + +КонецПроцедуры // ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии() + Процедура ТестДолжен_ПроверитьЧтениеОтчетаХранилища() Экспорт ПутьКФайлуОтчета = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "report.mxl.txt");