afryca.ase.Snippet
ASE-API
Eval snippet examples
var snippets = Array();
function createSnippet(id, code) {
var prefix = 'ASE-API eval snippet example';
var SnippetClass = Java.type('afryca.ase.Snippet');
var snippet = new SnippetClass();
var name = prefix + ' ' + id;
var file = name + '.script';
snippet.setFile(file);
snippet.setName(name);
snippet.setCode(code);
snippet.setCategory('ASE-API');
ase.getSnippets().put(snippet.getFile(), snippet);
snippets[id] = {name: name, file: file};
}
function createSnippets() {
var groovy = 'def product(Double x, Double y) {\n'
groovy += ' return x * y\n';
groovy += '}';
createSnippet('groovy', groovy);
var r = 'product <- function(x ,y) {\n';
r += ' return (x * y)\n';
r += '}';
createSnippet('r', r);
var python = 'def product(x , y):\n';
python += ' return x * y';
createSnippet('python', python);
var ruby = 'def product(x, y)\n';
ruby += ' return x * y\n';
ruby += 'end';
createSnippet('ruby', ruby);
var lua = 'function product(x, y)\n';
lua += ' return x * y\n';
lua += 'end';
createSnippet('lua', lua);
var scala = 'def product(x:Double, y:Double) : Double = {\n';
scala += ' return x * y\n';
scala += '}';
createSnippet('scala', scala);
}
function deleteSnippets() {
for (var key in snippets) {
ase.getSnippets().remove(snippets[key].file);
}
}
createSnippets();
if (typeof Groovy !== 'undefined') ase.evalSnippet(Groovy, snippets['groovy'].name);
if (typeof R !== 'undefined') ase.evalSnippet(R, snippets['r'].name);
if (typeof Jython !== 'undefined') ase.evalSnippet(Jython, snippets['python'].name);
ase.evalSnippet('JRuby', snippets['ruby'].name);
ase.evalSnippet('LuaJ', snippets['lua'].name);
ase.evalSnippet('Scala', snippets['scala'].name);
var x = 3;
var y = 4;
var code = 'product(' + x + ',' + y + ')';
var notLoaded = 'is not loaded';
groovyResult = (typeof Groovy !== 'undefined') ? ase.evalCode(Groovy, code) : notLoaded;
rengine = (typeof R !== 'undefined') ? ase.evalCode(R, code) : notLoaded;
jython = (typeof Jython !== 'undefined') ? ase.evalCode(Jython, code) : notLoaded;
jruby = ase.evalCode('JRuby', code);
luaj = ase.evalCode('LuaJ', 'result = ' + code + ' -- ase get result'); // ASE shortcut
scalaResult = ase.evalCode('Scala', code);
var e1 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
createSnippet('code', code);
createSnippet('luaj code', 'result = ' + code + ' -- ase get result'); // ASE shortcut
groovyResult = (typeof Groovy !== 'undefined') ? ase.evalSnippet(Groovy, snippets['code'].name) : notLoaded;
rengine = (typeof R !== 'undefined') ? ase.evalSnippet(R, snippets['code'].name) : notLoaded;
jython = (typeof Jython !== 'undefined') ? ase.evalSnippet(Jython, snippets['code'].name) : notLoaded;
jruby = ase.evalSnippet('JRuby', snippets['code'].name);
luaj = ase.evalSnippet('LuaJ', snippets['luaj code'].name);
scalaResult = ase.evalSnippet('Scala', snippets['code'].name);
var e2 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
deleteSnippets();
'Example 1\n' + e1 + '\n\nExample 2\n' + e2
//
// Note: See 'Scripting examples' for more information
//