Что такое директива #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
,