conjuror
Version:
A magical CSV data parsing and outputing wizard or witch
67 lines (46 loc) • 2.35 kB
Markdown
Recipes
=======
The following is an example of what I'm thinking a recipe *could* look like and some documentation sketch of what values could represent. There is really only two main aspects to this file and these are described below
```
{
"name": "invoice",
"description": "A recipe for generating invoices based on hourly logged work with categories and descriptions",
"formats": ["cli", "csv", "html", "pdf"],
"filters": {
"date": ["date"],
"trim": ["string", "number"],
"search": ["string", "number"]
},
"instructions": [{
"process": [{
"increment": "time"
},{
"multiply": ["time", "rate"]
}],
"template": "tallied-data.html"
}]
}
```
#### formats
What formats a given recipe can be exported from Conjuror in. Ideally, we can at some point make a bar graph that output in formats `cli,svg` and such...
#### filters
These values are our current calls that filter data, these are the things I've started moving to `datapackage-query` module but have yet to been imported into Conjuror. The following values are "filter tools" and would need to written into Conjuror for a recipe to make use of them.
- date
- trim
- search
In the example above, these values have an `array` which would be "mapped" during a user configuring a project based on the types of value in a `resources[x].schema`
#### instructions
This is an array of objects, each of these objects would contain the following values:
**process**
Will be "operations" that get performed on a given line of data or in reference to the aggregate. Think of it is as instructions for Conjuror modules that get stored in a projects configuration / mapping. Examples aggregate
- increment (hours)
- translate (USD -> Euros)
- multiple (hours * rate)
**template**
An HTML view (or other formats?) to inject the processed operations into. Currently this is just the boring-ish CSV data in an HTML `<table>` view
---
My current thinking on recipes is making them relatively "sculpted" by
developers, as playing with the code towards this, it's going to involve HTML
templates and various operations! I've added a folder `recipes/invoices/` and
`recipes/expenses/`
Make nice barcharts with Wunderbar lib https://github.com/gribnoysup/wunderbar