use of groovy.lang.Script in project grails-core by grails.
the class DefaultUrlMappingEvaluatorTests method testNewMethod.
public void testNewMethod() throws Exception {
GroovyShell shell = new GroovyShell();
Binding binding = new Binding();
Script script = shell.parse("mappings = {\n" + " \"/$controller/$action?/$id?\" { \n" + " constraints {\n" + " id(matches:/\\d+/)\n" + " }\n" + " }\n" + "}\n");
script.setBinding(binding);
script.run();
Closure closure = (Closure) binding.getVariable("mappings");
List mappings = evaluator.evaluateMappings(closure);
assertEquals(1, mappings.size());
UrlMapping mapping = (UrlMapping) mappings.get(0);
assertNull(mapping.getActionName());
assertNull(mapping.getControllerName());
assertEquals("(*)", mapping.getUrlData().getTokens()[0]);
assertEquals("(*)?", mapping.getUrlData().getTokens()[1]);
assertEquals("(*)?", mapping.getUrlData().getTokens()[2]);
assertNotNull(mapping.getConstraints());
assertTrue(makeSureMatchesConstraintExistsOnId(mapping));
GrailsWebRequest r = GrailsWebMockUtil.bindMockWebRequest();
UrlMappingInfo info = mapping.match("/mycontroller");
info.configure(r);
assertEquals("mycontroller", info.getControllerName());
assertNull(mapping.match("/mycontroller").getActionName());
assertNull(mapping.match("/mycontroller").getId());
UrlMappingInfo info2 = mapping.match("/mycontroller/test");
info2.configure(r);
assertEquals("test", info2.getActionName());
assertNull(mapping.match("/mycontroller/test").getId());
assertEquals("234", mapping.match("/blog/test/234").getId());
}
use of groovy.lang.Script in project grails-core by grails.
the class DefaultUrlMappingEvaluatorTests method testNamedMappings.
public void testNamedMappings() throws Exception {
GroovyShell shell = new GroovyShell();
Binding binding = new Binding();
Script script = shell.parse("mappings = {\n" + "name firstMapping: \"/first/one\" {\n" + "}\n" + "\"/second/one\" {" + "}\n" + "name thirdMapping: \"/third/one\" {\n" + "}\n" + "}");
script.setBinding(binding);
script.run();
Closure closure = (Closure) binding.getVariable("mappings");
List mappings = evaluator.evaluateMappings(closure);
assertEquals(3, mappings.size());
}
use of groovy.lang.Script in project ratpack by ratpack.
the class RatpackDslScriptCapture method apply.
public RatpackDslClosures apply(Path file, String scriptContent) throws Exception {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
ScriptEngine<Script> scriptEngine = new ScriptEngine<>(classLoader, compileStatic, Script.class);
return RatpackDslClosures.capture(function, file, () -> {
Script script = scriptEngine.create(file.getFileName().toString(), file, scriptContent);
script.setBinding(new Binding(args));
script.run();
});
}
use of groovy.lang.Script in project groovy by apache.
the class GroovyTestSuite method loadTestSuite.
public void loadTestSuite() throws Exception {
String fileName = System.getProperty("test", file);
if (fileName == null) {
throw new RuntimeException("No filename given in the 'test' system property so cannot run a Groovy unit test");
}
System.out.println("Compiling: " + fileName);
Class type = compile(fileName);
String[] args = {};
if (!Test.class.isAssignableFrom(type) && Script.class.isAssignableFrom(type)) {
// let's treat the script as a Test
addTest(new ScriptTestAdapter(type, args));
} else {
addTestSuite(type);
}
}
use of groovy.lang.Script in project intellij-community by JetBrains.
the class GroovyScriptMacro method runIt.
private static Object runIt(Expression[] params, ExpressionContext context) {
try {
Result result = params[0].calculateResult(context);
if (result == null)
return result;
String text = result.toString();
GroovyShell shell = new GroovyShell();
File possibleFile = new File(text);
Script script = possibleFile.exists() ? shell.parse(possibleFile) : shell.parse(text);
Binding binding = new Binding();
for (int i = 1; i < params.length; ++i) {
Result paramResult = params[i].calculateResult(context);
Object value = null;
if (paramResult instanceof ListResult) {
value = ContainerUtil.map2List(((ListResult) paramResult).getComponents(), result1 -> result1.toString());
} else if (paramResult != null) {
value = paramResult.toString();
}
binding.setVariable("_" + i, value);
}
binding.setVariable("_editor", context.getEditor());
script.setBinding(binding);
Object o = script.run();
return o != null ? StringUtil.convertLineSeparators(o.toString()) : null;
} catch (Exception e) {
return new TextResult(StringUtil.convertLineSeparators(e.getLocalizedMessage()));
}
}
Aggregations