Update handlebars to ^1. Remove eq helper and update json-format helper, add test.
This commit is contained in:
parent
4eba6c2b40
commit
d8e8ffac55
@ -4,5 +4,5 @@ version = "0.1.0"
|
||||
authors = ["Adrian Malacoda <adrian.malacoda@monarch-pass.net>"]
|
||||
|
||||
[dependencies]
|
||||
handlebars = "0.32.2"
|
||||
handlebars = "^1"
|
||||
serde_json = "^1.0.0"
|
||||
|
37
src/lib.rs
37
src/lib.rs
@ -1,25 +1,34 @@
|
||||
extern crate handlebars;
|
||||
use serde_json::Value;
|
||||
use handlebars::{Handlebars, Helper, HelperDef, RenderContext, RenderError};
|
||||
use handlebars::{Context, Output, Handlebars, Helper, RenderContext, RenderError};
|
||||
|
||||
#[macro_use]
|
||||
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.",),)?;
|
||||
render_context.writer.write(param.value().to_string().into_bytes().as_ref())?;
|
||||
out.write(¶m.value().to_string())?;
|
||||
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) {
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user