Skip to content

Commit

Permalink
Finish 0.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa committed Feb 11, 2019
2 parents 8fd3e77 + b76c0fe commit 059a639
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 35 deletions.
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//

Описание.Имя("v8find")
.Версия("0.1.1")
.Версия("0.1.2")
.Автор("Khorev Aleksey")
.АдресАвтора("Khorevaa@gmail.com")
.Описание("Библиотека")
Expand All @@ -13,6 +13,7 @@
//.ВключитьФайл("docs")
//.ВключитьФайл("tests")
.ЗависитОт("logos")
.ЗависитОт("fluent")
.ЗависитОт("strings")
.ЗависитОт("1commands")

Expand Down
65 changes: 37 additions & 28 deletions src/Классы/Платформа1С.os
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#Использовать "./internal"
#Использовать logos
#Использовать fluent
#Использовать strings
Перем Лог;

Expand Down Expand Up @@ -194,44 +195,46 @@
Возврат ВерсияПлатформы;
КонецЕсли;

МассивСортировки = Новый Массив;
МассивСортировки.Добавить("НомерВерсии УБЫВ");

ФильтрТаблицыПоРазрядности = Ложь;

Если Разрядность = РазрядностьПлатформы.x86
ИЛИ Разрядность = РазрядностьПлатформы.x64 Тогда
Отбор.Вставить("Разрядность", Разрядность);
Иначе

СортировкаРазрядности = "РазрядностьПорядок "+ ?(Разрядность = РазрядностьПлатформы.x64x86, "УБЫВ", "ВОЗР");

МассивСортировки.Добавить(СортировкаРазрядности);

ФильтрТаблицыПоРазрядности = Истина;
КонецЕсли;

СортировкаТаблицы = СтрСоединить(МассивСортировки, ",");


СтрокиВерсий = ТаблицаВерсийПлатформы.НайтиСтроки(Отбор);
ТаблицаПоиска = ТаблицаВерсийПлатформы.Скопировать(СтрокиВерсий);

Лог.Отладка("Сортировка таблицы версий <%1>", СортировкаТаблицы);
ТаблицаПоиска.Сортировать(СортировкаТаблицы);

Для каждого СтрокаВерсии Из ТаблицаПоиска Цикл
Лог.Отладка("Индекс строки <%1>", ТаблицаПоиска.Индекс(СтрокаВерсии));

Лог.Отладка("Проверяю версию <%1>, <%2>, <%3>", СтрокаВерсии.НомерВерсии, СтрокаВерсии.Разрядность, СтрокаВерсии.РазрядностьПорядок);
ФункцияСортировки = Новый ОписаниеОповещения("СортироватьПоВерсиям", ЭтотОбъект);
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("ТребуемоеПриложение", Приложение);

ДоступныеПриложения = СтрокаВерсии.ДоступныеПриложения;

Если СтрНайти(ДоступныеПриложения, Приложение) = 0 Тогда
Продолжить;
ПроцессорКоллекций = ПроцессорыКоллекций.ИзКоллекции(ТаблицаПоиска);
ПроцессорКоллекций.Сортировать(ФункцияСортировки)
.Фильтровать("Результат = СтрНайти(Элемент.ДоступныеПриложения, ДополнительныеПараметры.ТребуемоеПриложение) > 0;", ДополнительныеПараметры);


Если Не ФильтрТаблицыПоРазрядности Тогда
РазрядностьОтбора = РазрядностьПлатформы.x86;
Если Разрядность = РазрядностьПлатформы.x64x86 Тогда
РазрядностьОтбора = РазрядностьПлатформы.x64;
КонецЕсли;

ВерсияПлатформы = СтрокаВерсии.ВерсияПлатформы;

Прервать;

КонецЦикла;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("ТребуемаяРазрядность", РазрядностьОтбора);

Если ПроцессорКоллекций.ЛюбойСоответствует("Результат = Элемент.Разрядность = ДополнительныеПараметры.ТребуемаяРазрядность", ДополнительныеПараметры) Тогда
ПроцессорКоллекций.Фильтровать("Результат = Элемент.Разрядность = ДополнительныеПараметры.ТребуемаяРазрядность", ДополнительныеПараметры);
КонецЕсли;

КонецЕсли;

НужныйЭлемент = ПроцессорКоллекций.ПолучитьПервый();

Если НЕ НужныйЭлемент = Неопределено Тогда
ВерсияПлатформы = НужныйЭлемент.ВерсияПлатформы;
КонецЕсли;

// Получение не определенной версии для UNIX систем
Если ВерсияПлатформы = Неопределено
Expand All @@ -252,6 +255,12 @@

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

Процедура СортироватьПоВерсиям(Результат, ДополнительныеПараметры) Экспорт

Результат = СтроковыеФункции.СравнитьВерсии(ДополнительныеПараметры.Элемент1.НомерВерсии, ДополнительныеПараметры.Элемент2.НомерВерсии) < 0;

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

Функция ПолучитьВерсиюДляUnix()

СтрокаНеопределеннойВерсии = ТаблицаВерсийПлатформы.Найти(НеопределеннаяВерсия, "НомерВерсии");
Expand Down
12 changes: 6 additions & 6 deletions tests/Платформа1С_test.os
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

КаталогFixtures = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures");
КаталогWindows = ОбъединитьПути(КаталогFixtures, "windows");
Платформа1С = Новый МенеджерПлатформы1С;
Платформа1С = Новый Платформа1С;
Платформа1С.СброситьПоиск();
Платформа1С.ДобавитьКаталоГПоиска(КаталогWindows, РазрядностьПлатформы.x86);

Expand All @@ -48,7 +48,7 @@

КаталогFixtures = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures");
КаталогВерсий = ОбъединитьПути(КаталогFixtures, "linux", "osx");
Платформа1С = Новый МенеджерПлатформы1С;
Платформа1С = Новый Платформа1С;
Платформа1С.СброситьПоиск();
Платформа1С.ДобавитьКаталоГПоиска(КаталогВерсий, РазрядностьПлатформы.x64);

Expand All @@ -70,7 +70,7 @@
КаталогВерсий_x86 = ОбъединитьПути(КаталогFixtures, "linux", "8.3.13.9999", "i386");
КаталогВерсий_x64 = ОбъединитьПути(КаталогFixtures, "linux", "8.3.13.9999", "x86_64");

Платформа1С = Новый МенеджерПлатформы1С;
Платформа1С = Новый Платформа1С;
Платформа1С.СброситьПоиск();
Платформа1С.ДобавитьКаталоГПоиска(КаталогВерсий_x86, РазрядностьПлатформы.x86, "0.0.0.0");
Платформа1С.ДобавитьКаталоГПоиска(КаталогВерсий_x64, РазрядностьПлатформы.x64, "0.0.0.0");
Expand All @@ -81,7 +81,7 @@
Платформа1С.ДобавитьКаталоГПоиска(КаталогВерсий_x86, РазрядностьПлатформы.x86, "0.0.0.0");
Платформа1С.ДобавитьКаталоГПоиска(КаталогВерсий_x64, РазрядностьПлатформы.x64, "0.0.0.0");

ПутьКПредприятию_x86 = Платформа1С.ПутьКПредприятию("8.3.13.9999", РазрядностьПлатформы.x86);
ПутьКПредприятию_x86 = Платформа1С.ПутьКПредприятию("8.3.13", РазрядностьПлатформы.x86);
ПутьКПредприятию_x64 = Платформа1С.ПутьКПредприятию("8.3.13", РазрядностьПлатформы.x64);
ПутьКПредприятию_x86x64 = Платформа1С.ПутьКПредприятию("8.3.13.9999", РазрядностьПлатформы.x86x64);
ПутьКПредприятию_x64x86 = Платформа1С.ПутьКПредприятию("8.3.13.9999", РазрядностьПлатформы.x64x86);
Expand All @@ -95,8 +95,8 @@
ЭталонныйПуть = ОбъединитьПути(КаталогВерсий_x86, "1cv8");
Ожидаем.Что(ПутьКПредприятию_x86x64, "ПутьКПредприятию_x86x64 исполняемый файл приложения 1С найден").Равно(ЭталонныйПуть);

// ЭталонныйПуть = ОбъединитьПути(КаталогВерсий_x64, "1cv8");
// Ожидаем.Что(ПутьКПредприятию_x64x86, "ПутьКПредприятию_x64x86 исполняемый файл приложения 1С найден").Равно(ЭталонныйПуть);
ЭталонныйПуть = ОбъединитьПути(КаталогВерсий_x64, "1cv8");
Ожидаем.Что(ПутьКПредприятию_x64x86, "ПутьКПредприятию_x64x86 исполняемый файл приложения 1С найден").Равно(ЭталонныйПуть);

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

Expand Down

0 comments on commit 059a639

Please sign in to comment.