Added some notes about observed behavior and fixed return types for missing/absent keys.
This commit is contained in:
parent
69fa266692
commit
716a110d2e
@ -7,3 +7,12 @@ Excerpt from [the DustJS tutorial](https://github.com/linkedin/dustjs/wiki/Dust-
|
|||||||
Undefined, 0, empty string - zero
|
Undefined, 0, empty string - zero
|
||||||
Any other value - length after conversion to string
|
Any other value - length after conversion to string
|
||||||
|
|
||||||
|
This appears to be inaccurate (probably out of date because that tutorial was deprecated in favor of [dustjs.com](https://www.dustjs.com/), but the latter is incomplete and lacking any reference to the `@size` helper.
|
||||||
|
|
||||||
|
Corrections
|
||||||
|
-----------
|
||||||
|
- Booleans are 0, not converted to strings
|
||||||
|
|
||||||
|
Oddities
|
||||||
|
--------
|
||||||
|
Reference parameters (like `foo="{bar}"`) are usually treated as strings but it seems if it contains ONLY a reference to a value and not anything else, then it is still treated as a number.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"val": {
|
"val": {
|
||||||
"pet": "cat",
|
"name": "fluffy",
|
||||||
"name": "fluffy"
|
"pet": "cat"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
The size of val ({val|js|s}) is {@size key=val /}{~n}
|
The size of val ({val|js|s}) is {@size key=val /}{~n}
|
||||||
The size of "{val}" is {@size key="{val}" /}{~n}
|
The size of "{~lb}val{~rb}" is {@size key="{val}" /}{~n}
|
||||||
The size with no key is {@size /}{~n}
|
The size with no key is {@size /}{~n}
|
||||||
|
@ -733,7 +733,12 @@ impl<'a> DustRenderer<'a> {
|
|||||||
.map(|ce| ce.get_size())
|
.map(|ce| ce.get_size())
|
||||||
});
|
});
|
||||||
match value_ce {
|
match value_ce {
|
||||||
None | Some(Err(_)) | Some(Ok(None)) => return Ok("".to_owned()),
|
// If we found the key but could not get the size from it, render nothing.
|
||||||
|
Some(Ok(None)) => return Ok("".to_owned()),
|
||||||
|
// If "key" is not on the @size tag at all, render 0.
|
||||||
|
None => return Ok("0".to_owned()),
|
||||||
|
// If the key value could not be found in the context, render 0.
|
||||||
|
Some(Err(_)) => return Ok("0".to_owned()),
|
||||||
Some(Ok(Some(ce_size))) => {
|
Some(Ok(Some(ce_size))) => {
|
||||||
return ce_size.get_context_element_reference().render(&Vec::new())
|
return ce_size.get_context_element_reference().render(&Vec::new())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user