erb
v1.3.3
Published
Compile a given Embedded RuBy (ERB) template using variables and functions defined in given a JavaScript object
Downloads
65,892
Readme
erb
Compile a given Embedded RuBy (ERB) template using variables and functions defined in given a JavaScript object.
Installation
npm install --save erbUsage
Executing
const erb = require('erb');
const data = {
"fields": {
"first": "Morty",
"second": "Rick"
},
"values": {
"additions": "with pattie, breaded and fried"
},
"functions": {
"title": [
[
1,
"One Chicken Fried Steak"
],
[
2,
3,
"Two or Three Chicken Fried Steaks"
]
]
}
}
erb({
timeout: 5000,
data: data,
template: '<%= @first %> had <%= title(1) %> <%= additions %>.\n<%= @second %> had <%= title(2, 3) %> <%= additions %>.'
}).then(console.log, console.error);would result in
Morty had One Chicken Fried Steak with pattie, breaded and fried.
Rick had Two or Three Chicken Fried Steaks with pattie, breaded and fried.API
erb(opts)
opts is a simple JSON object with these properties:
timeout(optional, integer) - number of milliseconds (defaults to 5000) to wait for the template evaluation to finish before terminating with errordata(optional, object) - an object that contains these properties:fields(optional, object) - the keys of this object are instance variable names to be used in the ERB template and values are the values of the instance variablesvalues(optional, object) - the keys of this object are variable names to be used in the ERB template and values are the values of the variablesfunctions(optional, object) - the keys of this object are function names to be used in the ERB template and values are special arrays - the items match the function call arguments with the last item being the value returned by the function when called with these arguments.
template(required, string) - the ERB template to be compiled
Building
Requires Bundler.
npm run buildContributing
- do not do existing API-breaking changes - the test suite should remain unchanged forever, except when you add new features
- if you do a pull request, then it must have a precise title and exactly the change the title describes - otherwise do several pull requests
