rna
v0.1.3
Published
RNA is a handlebars-based code generator.
Downloads
94
Maintainers
Readme
RNA
RNA is a template/model based code generator.
It takes mustash templates and json models to generate code.
Usage:
Usage: rna [--dir working_directory] <model> <template> [output]
rna [--dir working_directory] <rna_config_file>
model:
supported formats:
- json
template:
supported formats:
- handlebars template
rna_config_file:
supported formats:
- json
possible objects:
{
model: <string>,
template: <string>,
output: <string>
}
or
{
RnaConf: {
model: <string>,
template: <string>,
output: <string>
}
}
The advantage of using the second form is to be able tu have the same file for
the rna configuration and the model.
API
Template
You can use everything Handlebars has to offer.
Model
Your model must be a valid json object. (JSON.parse compliant).
There are two helpers available: $files and $custom.
$files
Example :
{
"$files": {
"matching": "*.coffee",
"type": "file",
"ignore": "index.coffee"
}
}
Here, the configuration of the $files field will be replaced by a liste of matching files.
Configuration options :
{
"$files": {
"dir": ".", "_": "base directory",
"matching": "*.coffee", "_": "only files matching *.coffee will be listed",
"type": "file", "_": "possible: file | dir (both if not specified)",
"ignore": "index.coffee", "_": "either a file name or a glob match",
"contains": "filename", "_": "directories containing a specific file (only with type=dir)"
}
}
$custom
Shamefully not tested ...
configuration:
{
"dir": ".", "_": "base directory",
"path": "./", "_" : "import path",
"data": {}, "_": "data to pass to the custom helper"
}
TODO
- write tests
- test $custom
- create more default helpers
- create gulp plugin