如何以Tonel格式将Pharo Smalltalk软件包保存到磁盘?

时间:2019-03-25 06:16:21

标签: pharo

我想编写Pharo Smalltalk脚本,该脚本以tonel格式加载和保存Smalltalk软件包,但我不了解用于保存软件包的API。

从磁盘上的Tonel加载到映像中的过程如下:

(TonelReader on: aRepositoryDirectory fileName: packageName)
    version load.

但是将包保存到磁盘上的反向操作是什么? (假设提供了软件包名称和目标目录。)

(我在这里明确地避免使用像Metacello和Iceberg这样的高级工具。我想直接使用Tonel库,或者不依赖任何以前的存储库配置而使用Monticello。)

1 个答案:

答案 0 :(得分:4)

也许不足为奇的是,TonelReader的逆像是由TonelWriter实现的:

[[[ TonelWriter on: ('someDirectory' asFileReference ensureCreateDirectory) ]]]

这里是Luke的完整示例:

[ :packageName :directory |
      TonelWriter fileOut:  packageName asPackage mcWorkingCopy on: directory.
] value: 'BaselineOfTonel' value: '/tmp/tonel-test'