Skip to content

Commit

Permalink
Добавлена возможность использовать ** в маске выбора коспонентов
Browse files Browse the repository at this point in the history
  • Loading branch information
rpiontik committed Nov 26, 2022
1 parent fdf0cba commit 651642d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 9 deletions.
12 changes: 4 additions & 8 deletions public/documentation/arch/contexts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,10 @@ contexts: # Контексты представления архитектур
title: Контейнерная архитектура DocHub
location: DocHub/Контейнерная архитектура
components:
- dochub.browser.localstorage
- dochub.front.spa
- dochub.gitlab.api
- dochub.gitlab.oauth
- dochub.gitlab.repository
- dochub.gitlab.gitclient
- dochub.plantuml.jar
- dochub.plantuml.dot
- dochub.browser.*
- dochub.front.*
- dochub.gitlab.*
- dochub.plantuml.*
- dochub.web
dochub.front.spa:
title: Компонентная архитектура DocHub
Expand Down
14 changes: 14 additions & 0 deletions public/documentation/docs/manual/contexts.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,20 @@ contexts: # Контексты представления архитектур
Обратите внимение, что компоненты в контекст можно включать по маске.
Звездочка в конце предполагает включение всех компонентов этого уровня в контекст.

Также, допустимой маской является такая запись:

```
dochub.*.spa.*
```

Если указывается двойная звездочка, то отбираются все компоненты текущего и нижележащих уровней.

Например, так:

```
dochub.**
```

## 4. Уровень IV: дополнительные сведения о дизайне архитектурных элементов
![дополнительные сведения о дизайне архитектурных элементов](@context/dochub.sequence)

Expand Down
21 changes: 20 additions & 1 deletion src/manifest/query.js
Original file line number Diff line number Diff line change
Expand Up @@ -636,8 +636,26 @@ const JSONSCEMA_ENTITIES_QUERY = `

function wcard(id, template) {
if (!id || !template) return false;
const idStruct = id.split('.');
const tmlStruct = template.split('.');
let items = [];
for (let i = 0; i < tmlStruct.length; i++) {
const pice = tmlStruct[i];
if (pice === '**') {
items.push('.*$');
break;
} else if (pice === '*') {
items.push('[^\\.]*');
} else items.push(pice);
}

const isOk = new RegExp(`^${items.join('\\.')}$`);
// eslint-disable-next-line no-console
console.info('WCARD:', `^${items.join('\\.')}$`);

return isOk.test(id);

/*
const idStruct = id.split('.');
if (tmlStruct.length < idStruct) return false;
for (let i = 0; i < tmlStruct.length; i++) {
const pice = tmlStruct[i];
Expand All @@ -646,6 +664,7 @@ function wcard(id, template) {
if (pice !== idStruct[i]) return false;
}
return idStruct.length === tmlStruct.length;
*/
}

function mergeDeep(sources) {
Expand Down

0 comments on commit 651642d

Please sign in to comment.