diff --git a/README.md b/README.md index 649b4d8..e365c5e 100644 --- a/README.md +++ b/README.md @@ -428,12 +428,12 @@ inverse section rather than having the section omitted altogether. This allows for proper conditional substitution when statically translating templates into other languages or contexts: - String template = "{{#condition}}result if true{{/condition}}\n{{^condition}}result if false{{/condition}}"; + String template = "{{#condition}}result if true{{/condition}}\n" + + "{{^condition}}result if false{{/condition}}"; Mustache.compiler().compile(template).execute(new Object() { Mustache.InvertableLambda condition = new Mustache.InvertableLambda() { @Override - public void execute(Template.Fragment frag, Writer out) - throws IOException { + public void execute(Template.Fragment frag, Writer out) throws IOException { // this method is executed when the lambda is referenced in a normal section out.write("if (condition) {console.log(\""); out.write(toJavaScriptLiteral(frag.execute())); @@ -441,8 +441,7 @@ other languages or contexts: } @Override - public void executeInverse(Template.Fragment frag, Writer out) - throws IOException { + public void executeInverse(Template.Fragment frag, Writer out) throws IOException { // this method is executed when the lambda is referenced in an inverse section out.write("if (!condition) {console.log(\""); out.write(toJavaScriptLiteral(frag.execute())); diff --git a/src/main/java/com/samskivert/mustache/Mustache.java b/src/main/java/com/samskivert/mustache/Mustache.java index 8f7337b..1145ea1 100644 --- a/src/main/java/com/samskivert/mustache/Mustache.java +++ b/src/main/java/com/samskivert/mustache/Mustache.java @@ -224,7 +224,8 @@ public class Mustache void execute (Template.Fragment frag, Writer out) throws IOException; } - public interface InvertableLambda extends Lambda + /** Handles lambdas that are also invoked for inverse sections.. */ + public interface InvertibleLambda extends Lambda { /** Executes this lambda on the supplied template fragment, when the lambda is used in an * inverse section. The lambda should write its results to {@code out}. @@ -784,9 +785,9 @@ public class Mustache if (!(Boolean)value) { executeSegs(tmpl, ctx, out); } - } else if (value instanceof InvertableLambda) { + } else if (value instanceof InvertibleLambda) { try { - ((InvertableLambda)value).executeInverse(tmpl.createFragment(_segs, ctx), out); + ((InvertibleLambda)value).executeInverse(tmpl.createFragment(_segs, ctx), out); } catch (IOException ioe) { throw new MustacheException(ioe); } diff --git a/src/test/java/com/samskivert/mustache/MustacheTest.java b/src/test/java/com/samskivert/mustache/MustacheTest.java index c52828b..9f50e35 100644 --- a/src/test/java/com/samskivert/mustache/MustacheTest.java +++ b/src/test/java/com/samskivert/mustache/MustacheTest.java @@ -629,30 +629,24 @@ public class MustacheTest })); } - @Test public void testInvertableLambda () { + @Test public void testInvertibleLambda () { test("positive = positive, negative = negative, simple lambdas do still work", - "{{#invertable}}positive{{/invertable}}, {{^invertable}}negative{{/invertable}}, simple lambdas do {{^simple}}NOT {{/simple}}still work", - context("invertable", new Mustache.InvertableLambda() { - @Override - public void execute(Template.Fragment frag, Writer out) - throws IOException { - out.write("positive = "); - frag.execute(out); - } - - @Override - public void executeInverse(Template.Fragment frag, Writer out) - throws IOException { - out.write("negative = "); - frag.execute(out); - } - }, "simple", new Mustache.Lambda() { - @Override - public void execute(Template.Fragment frag, Writer out) - throws IOException { - frag.execute(out); - } - })); + "{{#invertible}}positive{{/invertible}}, {{^invertible}}negative{{/invertible}}, " + + "simple lambdas do {{^simple}}NOT {{/simple}}still work", + context("invertible", new Mustache.InvertibleLambda() { + public void execute (Template.Fragment frag, Writer out) throws IOException { + out.write("positive = "); + frag.execute(out); + } + public void executeInverse (Template.Fragment frag, Writer out) throws IOException { + out.write("negative = "); + frag.execute(out); + } + }, "simple", new Mustache.Lambda() { + public void execute (Template.Fragment frag, Writer out) throws IOException { + frag.execute(out); + } + })); } @Test public void testNonStandardDefaultDelims () {