This commit is contained in:
@@ -3,6 +3,6 @@ org.gradle.parallel=true
|
|||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
|
|
||||||
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
||||||
jwo.version = 2025.01.09
|
jwo.version = 2025.01.17
|
||||||
lys.version = 2025.01.08
|
lys.version = 2025.01.10
|
||||||
guice.version = 5.0.1
|
guice.version = 5.0.1
|
||||||
|
@@ -346,13 +346,20 @@ public class JWO {
|
|||||||
|
|
||||||
int cursor = 0;
|
int cursor = 0;
|
||||||
while(cursor < template.length()) {
|
while(cursor < template.length()) {
|
||||||
int nextPlaceHolder = indexOfWithEscape(template, '$', '$', cursor, template.length());
|
int nextPlaceHolder = template.indexOf('$', cursor);
|
||||||
if (nextPlaceHolder < 0) {
|
if (nextPlaceHolder < 0) {
|
||||||
nextPlaceHolder = template.length();
|
nextPlaceHolder = template.length();
|
||||||
}
|
}
|
||||||
while (cursor < nextPlaceHolder) {
|
int nextPlaceHolderWithEscape = indexOfWithEscape(template, '$', '$', cursor, template.length());
|
||||||
char ch = template.charAt(cursor++);
|
if (nextPlaceHolderWithEscape < 0) {
|
||||||
sb.append(ch);
|
nextPlaceHolderWithEscape = template.length();
|
||||||
|
}
|
||||||
|
while (cursor < nextPlaceHolderWithEscape) {
|
||||||
|
char ch = template.charAt(cursor);
|
||||||
|
if (nextPlaceHolder == nextPlaceHolderWithEscape || cursor != nextPlaceHolder) {
|
||||||
|
sb.append(ch);
|
||||||
|
}
|
||||||
|
++cursor;
|
||||||
}
|
}
|
||||||
if (cursor + 1 < template.length() && template.charAt(cursor + 1) == '{') {
|
if (cursor + 1 < template.length() && template.charAt(cursor + 1) == '{') {
|
||||||
String key;
|
String key;
|
||||||
|
@@ -9,15 +9,6 @@ import java.net.URLStreamHandler;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class Handler extends URLStreamHandler {
|
public class Handler extends URLStreamHandler {
|
||||||
private final ClassLoader classLoader;
|
|
||||||
|
|
||||||
public Handler() {
|
|
||||||
this.classLoader = getClass().getClassLoader();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Handler(ClassLoader classLoader) {
|
|
||||||
this.classLoader = classLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected URLConnection openConnection(URL u) throws IOException {
|
protected URLConnection openConnection(URL u) throws IOException {
|
||||||
|
@@ -158,6 +158,7 @@ public class JWOTest {
|
|||||||
/home/user
|
/home/user
|
||||||
/home/user
|
/home/user
|
||||||
defaultValue
|
defaultValue
|
||||||
|
;=%x$!~L+LJr?50l.^{veaS'zLHo=!}wT
|
||||||
""";
|
""";
|
||||||
Map<String, Map<String, Object>> contextMap = new MapBuilder<String, Map<String, Object>>()
|
Map<String, Map<String, Object>> contextMap = new MapBuilder<String, Map<String, Object>>()
|
||||||
.entry("env",
|
.entry("env",
|
||||||
@@ -168,7 +169,8 @@ public class JWOTest {
|
|||||||
.entry("sys",
|
.entry("sys",
|
||||||
new MapBuilder<String, String>()
|
new MapBuilder<String, String>()
|
||||||
.entry("user.home", "/home/user")
|
.entry("user.home", "/home/user")
|
||||||
.build(TreeMap::new, Collections::unmodifiableMap)).build(TreeMap::new, Collections::unmodifiableMap);
|
.build(TreeMap::new, Collections::unmodifiableMap)
|
||||||
|
).build(TreeMap::new, Collections::unmodifiableMap);
|
||||||
try (Reader reader = new InputStreamReader(
|
try (Reader reader = new InputStreamReader(
|
||||||
JWOTest.class.getResourceAsStream("/render_template_test.txt"))) {
|
JWOTest.class.getResourceAsStream("/render_template_test.txt"))) {
|
||||||
String rendered = JWO.renderTemplate(reader, valuesMap, contextMap);
|
String rendered = JWO.renderTemplate(reader, valuesMap, contextMap);
|
||||||
|
@@ -2,3 +2,4 @@ This is a ${adjective} test made by ${author} on ${date}. It's really ${adjectiv
|
|||||||
${sys:user.home}
|
${sys:user.home}
|
||||||
${env:HOME}
|
${env:HOME}
|
||||||
${env:SOME_STRANGE_VAR:defaultValue}
|
${env:SOME_STRANGE_VAR:defaultValue}
|
||||||
|
;=%x$$!~L+LJr?50l.^{veaS'zLHo=!}wT
|
||||||
|
Reference in New Issue
Block a user