Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autumn 4.0 #73

Merged
merged 20 commits into from
Dec 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
1bec11e
Добавлено сканирование всех известных типов на предмет регистрации в …
sfaqer Oct 20, 2023
5d64be9
Порядок загрузки одноимённых желудей в тестах
sfaqer Oct 20, 2023
30d4459
Поднял зависимость от otymko/setup-onescript
sfaqer Oct 20, 2023
85736d3
Исправлены тесты производительности
sfaqer Oct 20, 2023
778d8da
Откачен фикс по добавлению желудей в мапу по прозвищу если задавлены …
sfaqer Oct 20, 2023
2634ab3
Добавил сборку на lts-dev
sfaqer Oct 20, 2023
d743fa4
Добавлена догрузка типов в момент старта приложения, для регистрации …
sfaqer Oct 21, 2023
a31a9e1
Попытка исправить сборку на dev
sfaqer Oct 21, 2023
2e34826
Поднял зависимость от collectionos
sfaqer Oct 21, 2023
8d620be
Вместо дополнительного скана при начале выполнения, сделан циклически…
sfaqer Oct 23, 2023
30821c9
Merge pull request #69 from sfaqer/feature/knownTypesScan
nixel2007 Oct 26, 2023
b458805
Временный перевод qa на lts-dev сборку
sfaqer Oct 26, 2023
9b112ba
Merge pull request #74 from sfaqer/patch-1
nixel2007 Oct 26, 2023
4d08f3a
В ожидании 1.8.5 убрал сборку на этой версии
nixel2007 Nov 26, 2023
b655ea3
stable тоже убран до релиза движка
nixel2007 Nov 26, 2023
43734c8
очепятки
nixel2007 Nov 26, 2023
12fa323
Окончания строк
nixel2007 Nov 26, 2023
0773795
Документация
nixel2007 Dec 4, 2023
b5717ca
Fix qf
nixel2007 Dec 4, 2023
8e5f8e3
Логирование и тудуха
nixel2007 Dec 4, 2023
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
2 changes: 1 addition & 1 deletion .bsl-language-server.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"listOfIncorrectFirstSymbol": ";"
},
"Typo": {
"userWordsToIgnore": "Разворачиватель,Блестяшка,Блестяшек,Блестяшки,Блестяшками,Блестяшку,Инит,Структурочка"
"userWordsToIgnore": "Разворачиватель,Блестяшка,Блестяшек,Блестяшки,Блестяшками,Блестяшку,Блестяшкой,Инит,Структурочка,Запускатель,Осенизатор,Просканированные,Аппендера"
}
}
}
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
4 changes: 2 additions & 2 deletions .github/workflows/perfomance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: ['ubuntu-latest']
oscript_version: ['1.8.3', 'stable']
oscript_version: ['dev', 'lts-dev']

steps:
# Загрузка проекта
Expand All @@ -22,7 +22,7 @@ jobs:

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/setup-onescript@v1.1
uses: otymko/setup-onescript@v1.3
with:
version: ${{ matrix.oscript_version }}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['stable']
oscript_version: ['lts-dev']
nixel2007 marked this conversation as resolved.
Show resolved Hide resolved

steps:
# Загрузка проекта
Expand All @@ -26,7 +26,7 @@ jobs:

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/setup-onescript@v1.1
uses: otymko/setup-onescript@v1.3
with:
version: ${{ matrix.oscript_version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/setup-onescript@v1.1
uses: otymko/setup-onescript@v1.3
with:
version: ${{ matrix.oscript_version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
oscript_version: ['1.8.3', 'stable', 'dev']
oscript_version: ['dev', 'lts-dev']
uses: autumn-library/workflows/.github/workflows/test.yml@main
with:
oscript_version: ${{ matrix.oscript_version }}
103 changes: 31 additions & 72 deletions README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@


Описание.Имя("autumn")
.Версия("3.3.0")
.Версия("4.0.0")
.Автор("Nikita Fedkin")
.АдресАвтора("[email protected]")
.Описание("Dependency injection framework для OneScript")
.ВерсияСреды("1.8.3")
.ВерсияСреды("1.8.5")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ВключитьФайл("LICENSE.md")
Expand All @@ -21,6 +21,7 @@
.ЗависитОт("fluent", "0.5.0")
.ЗависитОт("reflector", "0.7.1")
.ЗависитОт("semaphore", "1.1.0")
.ЗависитОт("collectionos", "0.3.1")

.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("asserts")
Expand Down
21 changes: 5 additions & 16 deletions perfomance_tests/Производительность.os
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Использовать ".."
#Использовать asserts
#Использовать "../tests"
#Использовать "../tests/ТестКлассы"

Перем ВремяНачалаЗамера;
Перем ВремяВыполненияВСекундах;
Expand All @@ -15,9 +15,7 @@

// Дано
Поделка = Новый Поделка();
Поделка
.ДобавитьЖелудь(Тип("КомпанейскийЖелудь"))
.ЗапуститьПриложение();
Поделка.ЗапуститьПриложение();


КоличествоИтераций = КоличествоИтерацийСозданияОбъектов();
Expand Down Expand Up @@ -45,10 +43,7 @@

// Дано
Поделка = Новый Поделка();
Поделка
.ДобавитьЖелудь(Тип("КомпанейскийЖелудь"))
.ДобавитьЖелудь(Тип("ЖелудьСКомпанейскойТабакеркой"))
.ЗапуститьПриложение();
Поделка.ЗапуститьПриложение();

Желудь = Поделка.НайтиЖелудь("ЖелудьСКомпанейскойТабакеркой");

Expand Down Expand Up @@ -97,10 +92,7 @@

// Дано
Поделка = Новый Поделка();
Поделка
.ДобавитьЖелудь(Тип("КомпанейскийЖелудь"))
.ДобавитьЖелудь(Тип("КомпанейскийЖелудьСПластилиномНаПолях"))
.ЗапуститьПриложение();
Поделка.ЗапуститьПриложение();


КоличествоИтераций = КоличествоИтерацийСозданияОбъектов();
Expand Down Expand Up @@ -128,10 +120,7 @@

// Дано
Поделка = Новый Поделка();
Поделка
.ДобавитьЖелудь(Тип("КомпанейскийЖелудь"))
.ДобавитьЖелудь(Тип("КомпанейскийЖелудьСПластилиномВКонструкторе"))
.ЗапуститьПриложение();
Поделка.ЗапуститьПриложение();


КоличествоИтераций = КоличествоИтерацийСозданияОбъектов();
Expand Down
145 changes: 145 additions & 0 deletions src/internal/Классы/Осенизатор.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
#Использовать collectionos
#Использовать annotations

#Область ОписаниеПеременных

Перем ФабрикаЖелудей;

Check warning on line 6 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L6

Добавьте описание переменной
Перем КонтейнерАннотаций;

Check warning on line 7 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L7

Добавьте описание переменной
Перем Поделка;

Check warning on line 8 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L8

Добавьте описание переменной
Перем СистемныеНапильники;

Check warning on line 9 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L9

Добавьте описание переменной
Перем ПросканированныеТипы;

Check warning on line 10 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L10

Добавьте описание переменной
Перем Рефлектор;

Check warning on line 11 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L11

Добавьте описание переменной

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

Процедура ПросканироватьИзвестныеТипы() Экспорт

Пока Истина Цикл

ИзвестныеТипы = Рефлектор
.ИзвестныеТипы(Новый Структура("Пользовательский", Истина));

Если ПросканированныеТипы.Количество() = ИзвестныеТипы.Количество() Тогда
Прервать;
КонецЕсли;

ПросканироватьТипы(ИзвестныеТипы.ВыгрузитьКолонку("Значение"));

КонецЦикла;

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Процедура ПросканироватьТипы(Типы)

Check failure on line 38 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L38

Уменьшите когнитивную сложность "ПросканироватьТипы" с 17 до 15

РазворачивательАннотаций = КонтейнерАннотаций.ПолучитьРазворачивательАннотаций();

// Двойной проход по типам для предварительного добавления аннотаций, которые могут быть нужны
// для добавления остальных типов желудей.
Для Каждого ТипЖелудя Из Типы Цикл

Если ПросканированныеТипы.Содержит(ТипЖелудя) Тогда
Продолжить;
КонецЕсли;

Методы = Рефлектор.ПолучитьТаблицуМетодов(ТипЖелудя);

Если РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Аннотация").Количество() > 0 Тогда
ДобавитьАннотацию(ТипЖелудя);
ПросканированныеТипы.Добавить(ТипЖелудя);
КонецЕсли;

КонецЦикла;

Для Каждого ТипЖелудя Из Типы Цикл

Если ПросканированныеТипы.Содержит(ТипЖелудя) Тогда
Продолжить;
КонецЕсли;

Методы = Рефлектор.ПолучитьТаблицуМетодов(ТипЖелудя);

Если РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Аннотация").Количество() > 0 Тогда
Продолжить;
КонецЕсли;

РазворачивательАннотаций.РазвернутьАннотацииСвойств(Методы, ТипЖелудя);

Если РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Желудь").Количество() > 0 Тогда
ДобавитьЖелудь(ТипЖелудя);
ИначеЕсли РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Дуб").Количество() > 0 Тогда
ДобавитьДуб(ТипЖелудя);
ИначеЕсли РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Напильник").Количество() > 0 Тогда
ДобавитьНапильник(ТипЖелудя);
ИначеЕсли РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Рогатка").Количество() > 0 Тогда
ДобавитьРогатку(ТипЖелудя);
ИначеЕсли РаботаСАннотациями.НайтиМетодыСАннотацией(Методы, "Заготовка").Количество() > 0 Тогда
ДобавитьЗаготовку(ТипЖелудя);
Иначе // BSLLS:EmptyCodeBlock-off
// no-op
КонецЕсли;

ПросканированныеТипы.Добавить(ТипЖелудя);

КонецЦикла;

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

Процедура ДобавитьЖелудь(Тип, Имя = "")
ФабрикаЖелудей.ДобавитьЖелудь(Тип, Имя);
КонецПроцедуры

Процедура ДобавитьДуб(Тип)
ФабрикаЖелудей.ДобавитьДуб(Тип);
КонецПроцедуры

Процедура ДобавитьНапильник(Тип)

Если СистемныеНапильники.Содержит(Тип) Тогда
ФабрикаЖелудей.ДобавитьСистемныйНапильник(Тип);
Иначе
ФабрикаЖелудей.ДобавитьНапильник(Тип);
КонецЕсли;

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

Процедура ДобавитьЗаготовку(Тип)

ОпределениеЗаготовки = ФабрикаЖелудей.ДобавитьЗаготовку(Тип);

Заготовка = Поделка.НайтиЖелудь(ОпределениеЗаготовки.Имя());
Заготовка.ПриИнициализацииПоделки(Поделка);

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

Процедура ДобавитьРогатку(Тип)
ФабрикаЖелудей.ДобавитьРогатку(Тип);
КонецПроцедуры

Процедура ДобавитьАннотацию(Тип)
КонтейнерАннотаций.ДобавитьАннотацию(Тип);
КонецПроцедуры

#КонецОбласти

Процедура ПриСозданииОбъекта(пПоделка, пФабрикаЖелудей, пКонтейнерАннотаций)

ФабрикаЖелудей = пФабрикаЖелудей;
КонтейнерАннотаций = пКонтейнерАннотаций;
Поделка = пПоделка;

// TODO: Переделать на спецификацию, когда она будет готова.

Check notice on line 136 in src/internal/Классы/Осенизатор.os

View check run for this annotation

sonar.openbsl.ru qa-bot / autumn Sonarqube Results

src/internal/Классы/Осенизатор.os#L136

Найден служебный тег "// TODO"
СистемныеНапильники = Новый МножествоСоответствие();
nixel2007 marked this conversation as resolved.
Show resolved Hide resolved
СистемныеНапильники.Добавить(Тип("ОбработкаНапильникомПластилинаНаПолях"));
СистемныеНапильники.Добавить(Тип("ОбработкаНапильникомФинальныйШтрих"));

ПросканированныеТипы = Новый МножествоСоответствие();
nixel2007 marked this conversation as resolved.
Show resolved Hide resolved

Рефлектор = Новый Рефлектор;

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