Commit Graph

317 Commits

Author SHA1 Message Date
Michael Bayne 9508731dfa Add a test for recursive partial expansion.
This pertains to issue #124, but it seems to work fine.
2020-11-03 11:15:00 -08:00
Michael Bayne 9855710cc0 Use OpenJDK for CI builds. 2020-01-05 10:31:40 -08:00
Michael Bayne da7970e993 Allow access coercion to be disabled.
I'm not disabling it by default because that would change behavior for anyone
who was using reflection, which seems like annoying breakage. People who are
using JMustache with Java 9 can configure a non-coercing DefaultCollector to
eliminate the illegal access warnings.
2019-12-17 13:39:22 -08:00
Michael Bayne 9f0ade9db7 Update links to latest release. 2019-07-10 08:57:28 -07:00
Michael Bayne 01319c52df [maven-release-plugin] prepare for next development iteration 2019-07-10 08:41:27 -07:00
Michael Bayne c61801a7c6 [maven-release-plugin] prepare release jmustache-1.15 2019-07-10 08:41:18 -07:00
Michael Bayne 7e9b70ad9a Wrangle javadoc plugin back into operation.
Remove auto-module-name stuff as we have a real module-info now.
2019-07-10 08:39:37 -07:00
Michael Bayne 5d34f5bf52 Our module name is com.samskivert.jmustache. 2019-07-10 08:39:09 -07:00
Michael Bayne 1639640b54 A bunch of Maven plugin updates.
Hopefully things will play nicely with JDK11 now...
2019-07-10 08:17:35 -07:00
Michael Bayne 6691b3b687 Formatting tweak. 2019-07-02 08:15:30 -07:00
Michael Bayne db871d7f56 Merge pull request #107 from greg-simon/master
emptyStringIsFalse flag now works with any Object.
2019-07-02 08:13:33 -07:00
Greg Simon e01c1b7522 emptyStringIsFalse flag now works with any Object.
Previously, only String types were checked for being empty. Now
the Formatter is used to format the Object before checking for
being empty.
2019-06-27 11:23:19 +10:00
Michael Bayne fef365c986 Some Maven plugin version updates. 2019-02-08 11:25:18 -08:00
Michael Bayne 52ce395615 Disable Cobertura. Doesn't work with JDK9, yay. 2019-02-08 11:25:01 -08:00
Michael Bayne 241fbb723b Add a module config, twiddle build to support it.
We now have to build with JDK9 or above, but I believe that the built jar files
continue to be compatible with JDK 1.7 or above. If this turns out not to be
the case, please let me know.
2019-02-08 10:39:48 -08:00
Michael Bayne 8f7f2b2283 Specify a Jigsaw module name. 2019-02-07 15:08:43 -08:00
Michael Bayne b3c54669cc Make MustacheCustomContext a Mustache inner interface.
This matches the style of all the other extension points.
2018-08-21 17:20:33 -07:00
Michael Bayne 1c025166eb Merge pull request #103 from devinrsmith/feature/mustache-source
added MustacheCustomContext
2018-08-21 17:12:00 -07:00
Devin Smith 433e9677d4 added MustacheCustomContext 2018-08-21 17:32:18 -05:00
Michael Bayne 4533567303 Fix bugs relating to . and this.
First, I missed some reference checks when I stopped interning names. Fixed
those.

Second, when iterating over an array which contained null elements, the wrong
thing was happening.
2018-06-04 16:10:35 -07:00
Michael Bayne b823ed87c5 Remove use of String.intern().
Me, on the blackboard:

"I will not optimize code without using a profiler."
"I will not optimize code without using a profiler."
"I will not optimize code without using a profiler."
"I will not optimize code without using a profiler."
"I will not optimize code without using a profiler."
...
2018-04-30 08:58:01 -07:00
Michael Bayne 2c53104cf3 Extract Compiler.loadTemplate helper.
If a lambda wanted to load a template via its own template loader, this makes
it a lot easier to do so.
2018-03-05 09:27:18 -08:00
Michael Bayne 0100fb15cf Revert to source.level 1.7.
I was not thinking clearly when I bumped everything to 1.8. I don't want to
force a JVM 1.8 requirement on everyone. 1.7 should still be fine.
2018-02-02 10:31:25 -08:00
Michael Bayne bf288c8810 Better wording. 2017-12-17 15:20:13 -08:00
Michael Bayne 37e31cbeac Add mechism to visit template tags.
This is useful when you want to inspect the structure of the template without
executing it.
2017-12-17 15:16:09 -08:00
Michael Bayne 326f04cb1e Brace fiddling. 2017-12-17 14:46:42 -08:00
Michael Bayne af623f1335 Reference 1.14 release. 2017-12-04 09:17:13 -08:00
Michael Bayne 90d1220236 [maven-release-plugin] prepare for next development iteration 2017-12-04 09:14:37 -08:00
Michael Bayne 424851a082 [maven-release-plugin] prepare release jmustache-1.14 2017-12-04 09:14:28 -08:00
Michael Bayne 02f917e2f7 Add Fragment.executeTemplate().
Allows a lambda to execute a template in the lambda's own context. This enables
'late bound' template inclusion where the lambda can select a template based on
dynamic data in the context at the time it is executed.

Closes #92.
2017-12-03 18:29:15 -08:00
Michael Bayne 2a270dcdbe Update to GWT 2.8.2. 2017-12-03 18:29:15 -08:00
Michael Bayne 8cddc839e3 Oops can't use reflection in shared tests. 2017-09-20 09:51:53 -07:00
Michael Bayne 172f35fb64 When nesting for non-list contexts, inherit list info.
This ensures that if you enter a conditional block while inside a list
block, the list "state" from the outer list will still be visible. For
example (somewhat contrived, but gets the point across):

{{#list}}
{{#name}}{{-index}}. {{.}}{{/name}}
{{^name}}{{-index}}. No name!{{/name}}
{{/list}}

Yields something like:

1. Bob
2. Mary
3. No name!
4. Jim

Fixes #90.
2017-09-20 09:43:14 -07:00
Michael Bayne 49720df4ea Use shipped GWT 2.8.0 (yay).
Also made main source target 1.8 (from 1.6) and nixed some GWT test
cruft.
2016-11-20 11:34:25 -08:00
Michael Bayne 8da02a18e8 Merge pull request #85 from quentinburley/patch-1
Update README.md
2016-10-21 07:23:15 -07:00
quentinburley 02478eccdb Update README.md
fix typos: unbalanced parenthesis. 
before:
{{#names}}{{.}}{/names}}
after:
{{#names}}{{.}}{{/names}}
2016-10-16 18:18:33 +02:00
Michael Bayne b50919924b Doc updates. 2016-08-08 09:37:54 -07:00
Michael Bayne 88793cca0a [maven-release-plugin] prepare for next development iteration 2016-08-08 09:14:20 -07:00
Michael Bayne 76d4b38912 [maven-release-plugin] prepare release jmustache-1.13 2016-08-08 09:14:15 -07:00
Michael Bayne e6a9363fae Prep for 1.13 release. 2016-08-08 09:12:49 -07:00
Michael Bayne 96d9ba5e24 Some test fiddling to make things work in GWT. 2016-08-08 09:12:04 -07:00
Michael Bayne 9bb842ed20 Special case 'entrySet' on Map fetcher.
You can't normally reflectively access methods on Map because it has a
special fetcher, but being able to reflectively access 'entrySet' is
super useful when you want to iterate over the keys+values of a map, so
we're going to hack it in there. Ha!
2016-06-15 11:51:44 -07:00
Michael Bayne 1170d4500e Some toString impls to make debugging easier. 2016-06-15 11:51:44 -07:00
Michael Bayne 115f496947 Add means to obtain parent context(s) in Fragment.
Closes #77.
2016-05-15 11:07:22 -07:00
Michael Bayne 06347ba7eb Remind future me about submodules. 2016-04-29 10:04:34 -07:00
Michael Bayne 546f78318e Simple support for decompiling fragments.
There are limitations! See the javadoc for Template.Fragment.decompile.

Closes #75.
2016-04-14 08:32:07 -07:00
Michael Bayne 59c45a2da7 Demo/test custom collector that supports Optional. 2016-01-29 11:39:03 -08:00
Michael Bayne 5631d08338 Reference release 1.12 in the README. 2016-01-19 17:57:44 -08:00
Michael Bayne 49e59008fd [maven-release-plugin] prepare for next development iteration 2016-01-19 17:56:18 -08:00
Michael Bayne 855f1d33d2 [maven-release-plugin] prepare release jmustache-1.12 2016-01-19 17:56:14 -08:00