Commit Graph

262 Commits

Author SHA1 Message Date
Michael Bayne 11cfdf87e5 Merge pull request #15 from skaba/master
Java5 compatibility
2012-04-13 09:24:43 -07:00
Serkan Kaba ffe46f5865 Make the code Java5 compatible. 2012-04-10 14:26:57 +02:00
Michael Bayne 75da7d3e76 Only compile a lazily loaded template once. Also fixed styles. 2012-04-09 11:15:56 -07:00
Michael Bayne 37fbeb2bbd Merge pull request #14 from skaba/master
Fixes issue #13
2012-04-09 11:08:27 -07:00
serkan 4d9a664214 Fix infinite recursion. 2012-04-06 16:33:21 +02:00
Michael Bayne 7701880092 Update download links to latest release version (1.5). 2011-11-22 11:43:55 -08:00
Michael Bayne 718639127e Added comments and squeezed into 100 columns. 2011-11-22 11:40:09 -08:00
Michael Bayne 84b8f08634 Merge pull request #11 from jlewallen/parent-context
Add a Template.execute that takes a parent context.
2011-11-22 11:37:31 -08:00
Jacob Lewallen 1a06a0233a Add a Template.execute that takes a parent context. 2011-11-22 11:20:59 -08:00
Michael Bayne 751123c067 [maven-release-plugin] prepare for next development iteration 2011-11-13 08:53:24 -08:00
Michael Bayne ab3d6206e0 [maven-release-plugin] prepare release jmustache-1.5 2011-11-13 08:53:17 -08:00
Michael Bayne d51cd7e08a Reader and Writer are abstract classes. GWT tests work now. Yay! 2011-10-29 15:50:41 -07:00
Michael Bayne 407d999836 Further work on making JMustache work in GWT.
I've ironed out most of the kinks, but the GWT unit test still fails because
we're forced to do some sneaky things with java.io.Reader/Writer. I think it
will all work when compiled to JavaScript, so I need to check it in a real
project.
2011-10-29 15:31:27 -07:00
Michael Bayne f9319ce911 Added a header. 2011-10-29 15:31:03 -07:00
Michael Bayne f6c6f4916c Pass the context instance itself instead of its class.
In GWT we can't use Class.isAssignableFrom. We need the original instance so
that we can do (ctx instanceof Map<?,?>).
2011-10-29 15:29:18 -07:00
Michael Bayne 69826a707e Nixed limitations list. One was obsolete and the other is in the README. 2011-10-29 14:45:24 -07:00
Michael Bayne a5e7c2ebb8 Switch CompoundSegment to BlockSegment. Avoids overloading use of the term
compound, which I use for compound variables.
2011-10-29 14:41:27 -07:00
Michael Bayne adf116992c Modified compound variables to honor null/default configuration. Closes #10.
Kali/Bertrand convinced me that being consistent with other Mustache
implementations is more important than whatever wacky reasons I was harboring
for keeping compound variables different than singleton sections.
2011-10-29 14:38:56 -07:00
Michael Bayne 37884af44d Fixed thinko. 2011-10-29 13:19:16 -07:00
Michael Bayne 8ce01cd060 Added missing bangs, nixed quotes. 2011-10-29 13:17:56 -07:00
Michael Bayne 66ba7c8cf8 Added additional information about compound keys and null/default values. 2011-10-29 13:14:02 -07:00
Michael Bayne 0a27e6ce4d Added an SBT build so that I can deploy to Ivy. 2011-10-13 20:49:47 -07:00
Michael Bayne 627da759c7 Include sources in jar for (eventual) GWT usage. 2011-10-13 20:49:33 -07:00
Michael Bayne c67f6aeac5 Oh yeah, we need a way to plug in a custom collector. 2011-10-13 20:39:39 -07:00
Michael Bayne 76e9d54683 Extracted the iteration over collections and creation of variable fetchers into
a pluggable component.

This allows scaling down to the GWT environment by hiding the reflection code
via GWT's super source mechanism.

And it allows scaling up to non-Java languages (like Scala) by allowing the
library client to extend the DefaultCollector and teach it about Scala
Iterators, Iterables and Maps.

I also just realized that GWT has no facilities for Reader and Writer, which is
going to complicate making things work in GWT even further. But for now, I'll
just leave things as is.
2011-10-13 20:35:46 -07:00
Michael Bayne 2b6066adce [maven-release-plugin] prepare for next development iteration 2011-08-29 14:50:49 -07:00
Michael Bayne 447b109512 [maven-release-plugin] prepare release jmustache-1.4 2011-08-29 14:50:40 -07:00
Michael Bayne 4367ff6784 Only skip newlines if a tag is the only thing on the line.
Otherwise you get undesirable newline skipping if you do things like, for
example:

{{#foos}}
{{bar}}{{^-last}}, {{/-last}}
{{/foos}}

where you want the newline after {{/-last}}, but it was getting skipped.
2011-08-29 14:44:17 -07:00
Michael Bayne a3eb9e22e1 Fixed bug where -last was not correctly handled on lists of a single element,
where said element is both -first and -last.
2011-08-29 13:51:11 -07:00
Michael Bayne 28978548c5 Wrapped some long lines. 2011-08-29 13:42:11 -07:00
Michael Bayne 71fdc8aa33 Specify correct license in POM. 2011-08-26 11:26:41 -07:00
Michael Bayne 7255cb7c09 We keep the @Override on the same line round these parts. 2011-07-17 08:38:20 -07:00
Michael Bayne 3122c2c770 Merge pull request #8 from deadmoose/master
Ignores/overrides
2011-07-17 08:37:17 -07:00
David Hoover 92d1edd3e7 Ignore generated files 2011-07-01 11:38:47 -07:00
David Hoover b0737e3f2b Add missing @Overrides 2011-07-01 11:25:52 -07:00
Michael Bayne 753546a63c More stray tag character tests. 2011-06-21 22:00:37 -07:00
Michael Bayne 67d325624f Parser reorganization, parsing lenience++.
Reorganized the parser as a proper class so that I could easily reenter it to
deal with things like optional second open and close tag characters. In the
process, made the parser simply pass through certain kinds of malformed input
as text.

I hope to go further in this regard, avoiding parse exceptions in favor of
simply showing the user the malformed output unsubstituted. It's just as easy
to see "{{broken blah blah" in ones result template as it is to read exception
messages, and apps that wish to use JMustache for things like end-user
templates will find this much more agreeable.
2011-06-21 21:54:59 -07:00
Michael Bayne 2630e36cbd Reference the 1.3 release artifact. 2011-06-03 16:43:55 -07:00
Michael Bayne 553ab51357 [maven-release-plugin] prepare for next development iteration 2011-06-03 11:08:50 -07:00
Michael Bayne ca50fe0b15 [maven-release-plugin] prepare release jmustache-1.3 2011-06-03 11:08:45 -07:00
Michael Bayne 7c05c7ca05 Unwrap line. 2011-05-28 10:52:36 -07:00
Michael Bayne 7a282c03e5 Fixed booched Markdown tag. 2011-05-28 10:51:09 -07:00
Michael Bayne 9fae13e008 Added Compiler.nullValue() for situations where one wants to provide a value
for use when variables resolve to null, but still wishes for exceptions to be
thrown when values are not resolvable (i.e. are typos). Pre-existing behavior
is preserved if one uses defaultValue() or does not change the default
configuration.

Nota bene: there are complexities, so be sure to read the documentation.
2011-05-28 10:42:45 -07:00
Michael Bayne ef971015bd Resolves issue 7 regarding proper handling of nested contexts when processing a
nested context.
2011-05-26 14:52:45 -07:00
Michael Bayne 31d0a0985d Added usage for default values. 2011-04-15 12:45:54 -07:00
Michael Bayne 1be9c52589 Let's add a test illustrating that default values are used for variables which
resolve to null.
2011-04-15 12:39:16 -07:00
Michael Bayne 15ff48eabb Some tidying up, name changes and clarifications. I went with "defaultValue"
rather than "missingVariableValue" because the value is used any time a
variable resolves to null, not necessarily just when it is missing. If you
have a context like:

new Object() {
   String foo = null;
}

and reference {{foo}} in your template, foo is not missing, per se, but the
default value will still be used for it.
2011-04-15 12:35:33 -07:00
John Montgomery 5d59eada29 Added compiler option to provide defaults for missing values
Call missingVariableValue(value) on a Compiler object to get a new
version that will insert "value" for missing values (rather than
throwing an exception).  Useful when you have templates you would
rather generated *something* instead of erroring or for when objects may
have null values themselves.
2011-04-15 10:01:40 +01:00
Michael Bayne d04f2c2f76 Reference the latest release artifact. 2011-04-13 16:20:58 -07:00
Michael Bayne 6acca915b1 [maven-release-plugin] prepare for next development iteration 2011-04-13 16:18:42 -07:00