Определение загруженной группы из postLoadDoIt:

Можно ли определить, какая группа использовалась для загрузки определенной базовой линии из postLoadDoIt: в метачелло?

Например:

BaselineOfProject>>baseline: spec
    <baseline>
    ...
    spec group: 'default' with: #(...).
    spec group: 'complete' with: #(...).
    spec postLoadDoIt: #postLoad:spec:.

BaselineOfProject>>postLoad: loader spec: spec
    "spec or loader something something" = 'complete' ifFalse: [ ^ self ].
    do something.

Так что, если проект загружается как

Metacello new
    baseline: #Project;
    repository: '...';
    load

#postLoadDoIt не выполняется (или, скорее, он вернется вскоре после этого), но если я сделаю

Metacello new
    baseline: #Project;
    repository: '...';
    load: 'complete'

это будет выполнено.

Так можно ли как-то определить группу из spec или же loader?

1 ответ

Решение

Не по умолчанию. Можно определить разные группы, в результате чего загружается одна и та же комбинация пакетов, а сам Metacello не записывает, какие группы были фактически загружены. Если вы хотите знать, вы можете переопределить поведение по умолчанию для записи.

Другие вопросы по тегам