Как сохранить пакет Pharo Smalltalk на диск в формате Tonel?

Я хотел бы написать сценарии Pharo Smalltalk, которые загружают и сохраняют пакеты Smalltalk на диск в тональном формате, но я не понимаю API для сохранения пакетов.

Загрузка с Tonel на диск в образ работает так:

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

но какова обратная операция, позволяющая сохранить пакет на диск? (при условии, что указаны имя пакета и целевой каталог.)

(Я явно хочу избежать использования здесь продвинутых инструментов, таких как Metacello и Iceberg. Я хочу либо использовать библиотеку Tonel напрямую, либо Monticello, вне зависимости от какой-либо предыдущей конфигурации репозитория.)


person Luke Gorrie    schedule 25.03.2019    source источник


Ответы (1)


Возможно, неудивительно, что, похоже, обратное TonelReader реализовано _ 2_:

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

Вот полный пример любезности Люка:

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