我想只在加载包时才在映像启动时执行一些代码。我看到存在
Smalltalk>>#addToStartUpList:
一个方法,它允许我注册一个提供startUp和shutDown挂钩的类。
这很酷,但我不想手动执行此代码。 Pharo的推荐方法是什么?
答案 0 :(得分:3)
您需要将代码放在某处。添加此类注册的常用方法是在包中的类的#initialize方法中。
例如,像这样:
MyClassWithStartUp class>>#initialize
Smalltalk addToStartUpList: self
如果您的类MyClassWithStartUp位于您要控制的包中......那么它将在加载时自动注册。
答案 1 :(得分:2)
在1.10节中的http://pharobyexample.org/drafts/Metacello.pdf中,您可以了解如何指定前后加载脚本。您可以使用它们来设置启动列表。
我使用的方法是检查脚本本身(并将脚本放在~/Library/Preferences/pharo/
中。
例如,考虑一下:
MCWorkingCopy allManagers
select: [ :e | e package name beginsWith: 'Renraku' ]
thenDo: [ :e |
| repository |
...
如果你想对一堆存储库做同样的事情,或者你可以使用#detect
等等。