Metacello中的#includes:指令是什么?

时间:2013-09-24 10:58:32

标签: smalltalk pharo 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 个答案:

答案 0 :(得分:7)

它与要求相反,但它做得更多。如果A requires: BB includes: A, 然后加载B效果,加载A后加载#includes: B(因为#requires)。

我与Dale讨论过这种行为。最后,这是一个命名问题。在debian World中,你会使用像#provides:这样的东西(不存在),你可以写

A provides: B

但是,A requires: B仍然不会反映在那里。

TL; DR

A includes: B时,加载A也会加载B