Update handlebars to ^1. Remove eq helper and update json-format helper, add test.

This commit is contained in:
Adrian Malacoda 2018-08-04 23:59:18 -05:00
parent 4eba6c2b40
commit d8e8ffac55
2 changed files with 24 additions and 15 deletions

View File

@ -4,5 +4,5 @@ version = "0.1.0"
authors = ["Adrian Malacoda <adrian.malacoda@monarch-pass.net>"] authors = ["Adrian Malacoda <adrian.malacoda@monarch-pass.net>"]
[dependencies] [dependencies]
handlebars = "0.32.2" handlebars = "^1"
serde_json = "^1.0.0" serde_json = "^1.0.0"

View File

@ -1,25 +1,34 @@
extern crate handlebars; extern crate handlebars;
use serde_json::Value; use handlebars::{Context, Output, Handlebars, Helper, RenderContext, RenderError};
use handlebars::{Handlebars, Helper, HelperDef, RenderContext, RenderError};
#[macro_use]
extern crate serde_json; extern crate serde_json;
fn json_format_helper(helper: &Helper, _: &Handlebars, render_context: &mut RenderContext) -> Result<(), RenderError> { fn json_format_helper(helper: &Helper, _: &Handlebars, _: &Context, _: &mut RenderContext, out: &mut Output) -> Result<(), RenderError> {
let param = helper.param(0).ok_or(RenderError::new("Param 0 is required for format helper.",),)?; let param = helper.param(0).ok_or(RenderError::new("Param 0 is required for format helper.",),)?;
render_context.writer.write(param.value().to_string().into_bytes().as_ref())?; out.write(&param.value().to_string())?;
Ok(()) Ok(())
} }
struct EqHelper;
impl HelperDef for EqHelper {
fn call_inner(&self, helper: &Helper, _: &Handlebars, _: &mut RenderContext) -> Result<Option<Value>, RenderError> {
let param1 = helper.param(0).ok_or(RenderError::new("Param 0 is required for eq helper.",),)?.value();
let param2 = helper.param(1).ok_or(RenderError::new("Param 1 is required for eq helper.",),)?.value();
Ok(Some(Value::Bool(param1 == param2)))
}
}
pub fn register(handle: &mut Handlebars) { pub fn register(handle: &mut Handlebars) {
handle.register_helper("JSONstringify", Box::new(json_format_helper)); handle.register_helper("JSONstringify", Box::new(json_format_helper));
handle.register_helper("eq", Box::new(EqHelper)); }
#[cfg(test)]
mod tests {
use Handlebars;
use register;
#[test]
fn test_stringify() {
let mut handlebars = Handlebars::new();
register(&mut handlebars);
println!("{:?}", handlebars.render_template("FOO: {{JSONstringify foo}}", &json!({
"foo": {
"bar": 1,
"baz": 2
}
})).unwrap());
}
} }