fix for using {{.}} in non-standards mode
in non-standards mode (which is the default), {{.}} would be treated as a compound key, resulting in key not found exceptions.
This commit is contained in:
@@ -80,7 +80,8 @@ public class Template
|
|||||||
if (!_compiler.standardsMode) {
|
if (!_compiler.standardsMode) {
|
||||||
// if we're dealing with a compound key, resolve each component and use the result to
|
// if we're dealing with a compound key, resolve each component and use the result to
|
||||||
// resolve the subsequent component and so forth
|
// resolve the subsequent component and so forth
|
||||||
if (name.indexOf(".") != -1) {
|
|
||||||
|
if (name.indexOf(DOT_NAME) > 0) {
|
||||||
String[] comps = name.split("\\.");
|
String[] comps = name.split("\\.");
|
||||||
// we want to allow the first component of a compound key to be located in a parent
|
// we want to allow the first component of a compound key to be located in a parent
|
||||||
// context, but once we're selecting sub-components, they must only be resolved in the
|
// context, but once we're selecting sub-components, they must only be resolved in the
|
||||||
|
|||||||
@@ -169,11 +169,14 @@ public class MustacheTest
|
|||||||
|
|
||||||
@Test public void testTopLevelThis () {
|
@Test public void testTopLevelThis () {
|
||||||
assertEquals("bar", Mustache.compiler().compile("{{this}}").execute("bar"));
|
assertEquals("bar", Mustache.compiler().compile("{{this}}").execute("bar"));
|
||||||
|
assertEquals("bar", Mustache.compiler().compile("{{.}}").execute("bar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testNestedThis () {
|
@Test public void testNestedThis () {
|
||||||
assertEquals("barbazbif", Mustache.compiler().compile("{{#things}}{{this}}{{/things}}").
|
assertEquals("barbazbif", Mustache.compiler().compile("{{#things}}{{this}}{{/things}}").
|
||||||
execute(context("things", Arrays.asList("bar", "baz", "bif"))));
|
execute(context("things", Arrays.asList("bar", "baz", "bif"))));
|
||||||
|
assertEquals("barbazbif", Mustache.compiler().compile("{{#things}}{{.}}{{/things}}").
|
||||||
|
execute(context("things", Arrays.asList("bar", "baz", "bif"))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testStructuredVariable () {
|
@Test public void testStructuredVariable () {
|
||||||
|
|||||||
Reference in New Issue
Block a user