Что такое директива #include: в Metacello?

Я не понимаю следующую выдержку. Точнее не понятно что за #includes: Директива так как это выглядит в точности как противоположность #requires:,

spec for: #'pharo3.x' do: [
    spec 
        package: 'Grease-Core' with: [
            spec includes: #('Grease-Pharo30-Core' ). ];
        package: 'Grease-Tests-Core' with: [
            spec includes: #('Grease-Tests-Pharo20-Core' ). ];
        package: 'Grease-Pharo30-Core' with: [
            spec requires: #('Grease-Core' ). ];
        package: 'Grease-Tests-Pharo20-Core' with: [
            spec requires: #('Grease-Tests-Core' ) ] ].

1 ответ

Решение

Это противоположно требованию, но оно делает больше. Если A requires: B а также B includes: Aзатем загрузка B эффекты, которые A также загружен (из-за #includes:) после B загружен (из-за #requires).

У меня была дискуссия с Дейлом об этом поведении. В конце концов, это проблема с именами. В мире Debian вы бы использовали что-то вроде #provides: (который не существует), и вы могли бы написать

A provides: B

Однако тот факт, что до сих пор A requires: B не будет отражено там.

TL; DR

когда A includes: Bзатем загрузка A также загружает B,

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