Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pharo-vcs/tonel
https://github.com/pharo-vcs/tonel
Last synced: 24 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/pharo-vcs/tonel
- Owner: pharo-vcs
- License: mit
- Created: 2017-09-10T14:57:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T13:31:31.000Z (9 months ago)
- Last Synced: 2024-04-22T13:46:19.507Z (9 months ago)
- Language: Smalltalk
- Size: 308 KB
- Stars: 31
- Watchers: 7
- Forks: 26
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-pharo - Tonel - A file-per-class export format of Pharo source code allowing one to version code with git, svn, fosil, etc. (Projects management)
README
# Tonel [![Tonel-dev](https://github.com/pharo-vcs/tonel/actions/workflows/tonel.yml/badge.svg)](https://github.com/pharo-vcs/tonel/actions/workflows/tonel.yml)
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
```Smalltalk
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 ;)
1. **type**
Class|Trait|Extension
1. **typeDefinition**
STON file with class/trait/extension metadata
1. **methodMetadata**
STON file with method metadata
it's optional (but also, recommended)1. **method**
method declaration is this:
Class[ class] >> selector
1. **methodBody**
the method body (we do not parse contents, that's a classbuilder task)
## MiscelanousWhen using [Iceberg](https://github.com/pharo-vcs/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
}
```