pharo-vcs / tonel

MIT License
32 stars 26 forks source link

Tonel Tonel-dev

Tonel is a file-per-class format for monticello repositories.

Installing

Pharo > 6.1

Tonel comes out of the box in Pharo > 6.1

Pharo 4.0 to 6.0

Metacello new
  baseline: 'Metacello';
  repository: 'github://Metacello/metacello:pharo-6.1_dev/repository';
  get.
Metacello new
  baseline: 'Metacello';
  repository: 'github://Metacello/metacello:pharo-6.1_dev/repository';
  onConflict: [:ex | ex allow];
  load.
Metacello new 
  repository: 'github://pharo-vcs/tonel';
  baseline: 'Tonel';
  load.

Tonel Spec

[comment]
type { typeDefinition }
(
    [{ methodMetadata }]
    method [
        methodBody ] 
)*
  1. comment

    comment declaration is this:

    " comment string "

    it's optional (but normally there, in a good design ;)

  2. type

    Class|Trait|Extension

  3. typeDefinition

    STON file with class/trait/extension metadata

  4. methodMetadata

    STON file with method metadata it's optional (but also, recommended)

  5. method

    method declaration is this:

    Class[ class] >> selector

  6. methodBody

    the method body (we do not parse contents, that's a classbuilder task)

Miscelanous

When using Iceberg to save Smalltalk in this format it is customary to follow the convention of saving Tonel source in a in immediate project sub directory called src. To cause Iceberg to use Tonel format you must additionaly create a file called .properties in this directory containing the following directive:

{
    #format : #tonel
}